我对Codeigniter中的View有一些疑问。
如何构建我的设计以及如何在以后返回它?我想构建我的标题,主要内容和菜单,页脚等。
要构建设计,然后将其复制到我创建的每个新视图中,感觉不是一个好的解决方案。如果我在页脚中更改了某些内容,则更改将对整个网站生效。
有没有人有任何好的指南链接如何充分利用视图或在这里以一种好的方式解释。
答案 0 :(得分:1)
你的感觉是对的,根本不是一个好主意。这就是大多数人将某种模板系统与他们的视图结合使用的原因。
我曾经使用过这个库:http://williamsconcepts.com/ci/codeigniter/libraries/template/(以前,因为我不再在CI中编写太多代码)
从来没有给我带来麻烦,设置起来非常简单。
答案 1 :(得分:0)
您应该将自己的页眉,页脚,菜单等设置为自己的视图。这样,当您想要更改页脚时,您可以编辑该视图,然后更新使用该视图的每个控制器。
有关多个视图文件的详细信息,请参阅CodeIgniter docs。
答案 2 :(得分:0)
这里有两个半选项(假设你不想安装某种插件)。
选项1在您的观看中使用<?php $this->load->view('header'); ?>
等等。
选项2是在你的控制器中覆盖output
函数,它接受一个参数(页面内容)并从那里操作它(添加视图和诸如此类的东西)。
选项2.5是覆盖基础CI_Controller
并实现与上述output
函数相同的标准覆盖。
在执行选项2 / 2.5之前,请检查输出类的文档;您需要在回显之前将输出内容设置为null或空字符串,否则内容将出现两次。
答案 3 :(得分:0)
走出控制器
if($query->result())
{
**$data['blog']** = $query->result();
}
$data['title'] = 'LemonRose';
$data['content'] = 'home/home_content'; //this is the content section, a separate view from header and footer
//$this->output->cache(60);
**$this->load->view('template1', $data);**
}
注意template1
模板1(这是整个页面)
$this->load->view('tops/home');
$this->load->view($content); $content is the $data['content'] from above
$this->load->view('bottoms/main_home');
然后内容部分(home / home_content)将有一个地方接收$ data [blog]
foreach (**$blog** as $row){ //controller main
$row->title = ucwords($row->title); //more code goes below