我有一个控制器 pages.php:
class Pages extends CI_Controller {
public function index($page = 'home')
{
if ( ! file_exists('application/views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
$this->lang->load('common/menu.php');
$this->lang->load('pages/'.$page.'.php');
$data = array();
$this->load->helper('slideshow');
$data['slideshow'] = get_image_array();
$this->load->view('templates/common/header', $data);
$this->load->view('modules/slideshow', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/common/footer', $data);
}
}
我的 slideshow_helper 文件:
function get_image_array(){
$images = array(img("slideshow/desktop/home1.jpg", "one"),img("slideshow/desktop/home2.jpg", "two"),img("slideshow/desktop/home3.jpg", "three"));
$captions = array("first image", "second image", "third image");
return array_combine($images, $captions);
}
和幻灯片视图:
<div class="container">
<div class="row">
<div class="col-xs-12">
<div id="carousel-desktop" class="carousel slide visible-md visible-lg">
<ol class="carousel-indicators">
<li data-target="#carousel-desktop" data-slide-to="0" class="active"></li>
<li data-target="#carousel-desktop" data-slide-to="1"></li>
<li data-target="#carousel-desktop" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<?php $i = 1; ?>
<?php foreach ($image as $imageSrc => $caption ):?>
<?php $item_class = ($i == 1) ? 'item active' : 'item'; ?>
<div class="<?php echo $item_class; ?>">
<?php echo $image; if($caption != ""){ ?>
<div class="carousel-caption">
<?php echo $caption;?>
</div>
<?php } ?>
</div>
<?php $i++; ?>
<?php endforeach; ?>
</div>
<a class="left carousel-control" href="#carousel-desktop" data-slide="prev">
<span class="icon-chevron-sign-left"></span>
</a>
<a class="right carousel-control" href="#carousel-desktop" data-slide="next">
<span class="icon-chevron-sign-right"></span>
</a>
</div>
<br />
</div>
</div>
</div>
<br />
</div>
不幸的是,这不起作用我错过了什么吗?我收到以下错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: image
Filename: pages/home.php
-和-
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: pages/home.php
还是完全错误?我应该指出,该站点将无法访问数据库。
当我在视图文件中有数组时,它可以工作。
我想要做的是每个页面都有一个不同的模型/帮助文件,因为这个控制器的每个页面都会有一个幻灯片,但每个页面都有不同的图像。因此,与其无数次地重新创建视图部分,我只想为每个页面创建一个新数组。我正在考虑使用类似的东西:
$this->load->helper('pages/'.$page);
-or-
$this->load->model('pages/'.$page.'.php');
这样每个页面都有自己的模型/帮助文件管理器,但显然由于我无法让第一位工作,我不知道第二位是否可以工作。
任何帮助将不胜感激