我正在尝试在我的应用程序中包含一个标头。我创建了一个控制器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
答案 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);