Codeigniter包含文件

时间:2012-06-06 10:27:42

标签: php codeigniter

我正在尝试在我的应用程序中包含一个标头。我创建了一个控制器site并在其中定义了一个函数header,它将数据变量呈现为views/header.php

然而,当我尝试访问myUrl/site/header所有varialble工作正常,但当我在网站控制器index中创建另一个函数并在其中包含views/header时,我运行{{1}然后我在标题中得到未定义的变量通知。

任何想法?

site/index

class site extends CI_Controller { function header() {

$data =array('name'=>'foo');

$this->load->view('includes/header',$data); }

function index() { $this->load->view('includes/index');

} }

INDEX.PHP

3 个答案:

答案 0 :(得分:2)

如果您想将Html页面的单独段(例如页眉,页脚,导航栏等)保存为单独的视图文件,我认为最好以下列方式执行此操作

将您要成为标题的内容保存到文件名header.php(或您喜欢的任何其他内容)到views文件夹。假设header.php的内容是

<html>
    <head>
        <title>This is title</title>
    </head>
    <body>

另一个名为footer.php的文件包含以下内容

</body>
</html>

视图文件夹中的另一个文件my_view.php,用于保存该页面的内容。样本内容是

<?php $this->load->view('header');?>
<h1>Welcome</h1>
<p>Main contents here</p>
<?php $this->load->view('footer');?>

现在,如果从控制器功能加载my_view,将呈现整个HTML页面。

function my_controller_function(){
    $this->load->view('my_view');
}

答案 1 :(得分:0)

这不是正确的做法。基本上我像Rafiqunnabi那样做,除了我不在视图中加载视图。

例如:

 public function index()
{
  $this->load->view('include/header');
  $this->load->view('home');
  $this->load->view('include/footer');
}

答案 2 :(得分:0)

解决了!!!!

写了一个新助手并从那里返回数据,然后使用load-&gt;视图传递数据进行查看(&#39; includes / header&#39;,$ data);