public function admin($page = "admin")
{
$data['title'] = "admin";
$data['menu'] = "admin";
$this->load->view('tpl/header_admin',$data);
$this->load->view('admin/'.$page,$data);
}
这就是我尝试做的事情,标题和内容页面,但我不知道为什么它不起作用,如果我这样做
public function admin($page = "admin")
{
$data['title'] = "admin";
$data['menu'] = "admin";
$this->load->view('tpl/header_admin',$data);
}
OR
public function admin($page = "admin")
{
$data['title'] = "admin";
$data['menu'] = "admin";
$this->load->view('admin/'.$page,$data);
}
它将全部正常工作,我可以看到管理员或标题中的内容,但如果我将两个load->视图放在一起,它将只显示$ this-> load-> view(' admin /'.$page,$data);标题刚刚赢了
这就是CI网站所说的应该做的事情:
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
我没有看到不同的
顺便说一句:如果我访问/ admin,标题不会显示,但如果我访问/ admin / list,它将显示...第一次发生在我身上,为什么?
答案 0 :(得分:0)
试试这样..
<?php
public function admin($page = "admin")
{
$data['title'] = "admin";
$data['menu'] = "admin";
$data['header'] = $this->load->view('tpl/header_admin',$data,TRUE);//takes contains as string
$this->load->view('admin/'.$page,$data);
}
在您的视图中查看admin / admin.php
if (isset($header))
{
echo $header;
}
//Then other codes
$data['header'] = $this->load->view('tpl/header_admin',$data,TRUE);
此语句包含tpl/header_admin.php
作为带有html标记的字符串。
答案 1 :(得分:0)
函数$ this-&gt; load-&gt; view()
将输出HTML标头。所以你不能两次输出标题
正确的方法是
控制器文件
public function admin($page = "admin")
{
$data['title'] = "admin";
$data['menu'] = "admin";
$this->load->view('admin/index'.$page,$data);
}
查看文件admin / index.php
<html>
<?php include '../tpl/header_admin.php' ?>
template context.....
</html>
这是使用模板文件的方式