我有一个header.php我在每个页面的控制器中加载.但是我希望每个页面都有动态标题.我的想法是在我加载时将$ title变量传递给视图:
//Home Controller
function index()
{
$data['title'] = "Dynamic Title";
$this->load->view('header', $data);
$this->load->view('layouts/home');
$this->load->view('footer');
}
Run Code Online (Sandbox Code Playgroud)
然后检查我的header.php中的$ title变量
<title>
<?php if ($title)
{
echo $title;
}
else
{
echo 'Default Title';
}
endif; ?>
</title>
Run Code Online (Sandbox Code Playgroud)
但是这不起作用,我得到一个空白页面.我认为这是我的header.php的语法,但我无法弄清楚为什么.
if语法你的语法if-statement有点偏.你可以使用:
if (condition) {
// do a
} else {
// do b
}
Run Code Online (Sandbox Code Playgroud)
要么
if (condition) :
// do a
else :
// do b
endif;
Run Code Online (Sandbox Code Playgroud)
你似乎已将后者的结尾转换为前者.
完成更改后,您的标题可以像以下一样轻松打印:
<title><?php echo isset($title) ? $title : 'Default Title' ; ?></title>
Run Code Online (Sandbox Code Playgroud)
另一种加载视图的方法是使用单个模板文件:
$data['title'] = 'Foo Bar';
$data['content'] = 'indexPage';
$this->load->view('template', $data);
Run Code Online (Sandbox Code Playgroud)
这会将template.php文件加载为您的视图.在此文件中,您可以加载后续部分:
<?php $this->load->view("_header"); ?>
<?php $this->load->view($content); ?>
<?php $this->load->view("_footer"); ?>
Run Code Online (Sandbox Code Playgroud)
这绝不是必要的,但它可以帮助您保持控制器的简洁性.
| 归档时间: |
|
| 查看次数: |
17589 次 |
| 最近记录: |