我是CodeIgniter的新手,但我想我已经掌握了它的工作原理。
通常当我创建一个网站,比如一个5页的网站时,我将我的头文件放在每个页面中包含的php文件中,这样如果我必须改变标题,我只需要在一个页面中现场而不是改变它五次。
在我的CodeIgniter应用程序中,我的控制器中的每个页面都有一个函数,它根据函数加载不同的视图。例如,
public function Index() {
$data = array();
$this->load->view('index',$data);
}
public function blog() {
$data = array();
$this->load->view('inner1',$data);
}
然后我可以将所有逻辑都放在控制器中。
有一个引用标题的最佳方法是什么?我应该将它作为变量放在控制器中,然后将其作为数据发送到每个视图吗?
此外,如果有更有效的方法,请提出建议!
谢谢!
答案 0 :(得分:5)
我通常做的是在视图中创建标题,然后将标题视图添加到索引上方的控制器...您也可以使用页脚执行相同操作。
所以它会是这样的:
public function blog() {
$data = array();
$this->load->view('Header'); // just the header file
$this->load->view('inner1',$data); //your main content
}
有意义吗?
添加:您也可以在其中包含整个头标记,例如元标记,标题,CSS链接等。但我通常会将它们放在另一个视图中,因为有时它们会因页面而异。
答案 1 :(得分:5)
我经常使用CodeIgniter。我的/ views文件夹中有一个名为/ common的文件夹。在那里,我把我的footer.php,sidebar.php,header.php等等。
我的观看文件如下:
$this->load->view('header'); <div id"main"> ..... </div> $this->load->view('footer');
我的控制器文件如下:
public function blog() { $this->data['title'] = "Blog"; $this->data['meta_tags'] = $meta; $this->data['entries'] = $entries; $this->load->view('blog',$this->data); }
请注意,稍后可以在标题模板中调用变量$ title或$ meta。通过这种方式,我可以对common / header.php和整个站点的持久化进行更改。
祝你好运!PD:我建议使用Carabiner管理每个控制器顶部的资产,然后将其显示在header.php上
答案 2 :(得分:1)
你看过那里的任何模板项目吗?
http://williamsconcepts.com/ci/codeigniter/libraries/template/
http://philsturgeon.co.uk/index.php/code/codeigniter-template
这些允许您创建主模板(如果需要,可以创建更多模板),您可以在单个文件中进行站点范围的更改。这些更改可能包括标题,但它们也可能包含其他区域。