CI框架中如何正确引用多个视图?
最近在学习CI框架但是现在遇到一点小麻烦还请各位大侠赐教!这个是综合的模板
<html>
<head>
<title>我就是我张国荣</title>
</head>
<body>
<div style="width:500px;border:1px solid red;height:100px">我是导航栏</div><br />
<div style="width:500px;border:1px solid blue;height:300px">我是内容</div><br />
<div style="width:500px;border:1px solid green;height:100px">我是页尾</div>
</body>
</html>
最后我想把这个分成四个模板看看ci究竟是怎么多个模板引用的
<html>
<head>
<title>看看是怎么用的了</title>
</head>
<body>
</body>
</html>
这个是header.php页面
下面的三个都是相同的
<div style="width:500px;border:1px solid blue;height:300px"><?php echo $content; ?></div>
控制器里面的代码如下
<?php
class Blog extends CI_Controller{
function __construct(){
parent::__construct();
}
function index(){
$data['content'] = '我就是我张国荣!';
$this->load->view('header');
$this->load->view('menu');
$this->load->view('content',$data);
$this->load->view('footer');
}
function comments(){
echo "Oh mygod you are here!";
}
}
?>
最后结果却显示是这样的
中间怎么会有换行那?
本帖最后由 izengjing 于 2017-5-26 08:30 编辑
因为公共模板不会改变,只需要加载一次就可以,所以我把公共模板放在父类函数里面,而且,我也很希望这样处理数据。但是有个问题,公共模板里面的<title></title> 是需要变化的,我通过子模板引入的$data['title']只能在自己的代码段里面使用,公共模板不能使用这个数据,有大神能解决么???
public function __construct(){
parent::__construct();
$this->load->view('index/_meta.php');
$this->load->view('index/_header.php');
$this->load->view('index/_menu.php');
$this->load->view('index/_footer.php');
}
public function index(){
$data['title']="我是首页";
$this->load->view('index/_content.php',$data);
} baiyuxiong 发表于 2015-2-25 17:01
load view这种自己封装一个helper最方便了。
function lv($view,$data)
手册说分配多个视图的时候,给一个加就行,官网是这么写的:
<?php
class Page extends CI_Controller {
function index()
{
$data['page_title'] = 'Your title';
$this->load->view('header');
$this->load->view('menu');
$this->load->view('content', $data);
$this->load->view('footer');
}
}
?> izengjing 发表于 2017-5-26 08:28
因为公共模板不会改变,只需要加载一次就可以,所以我把公共模板放在父类函数里面,而且,我也很希望这样处 ...
你的问题最好的解决方案是 Layout,或者叫做模板继承,但是这需要 Smarty 或其他模板引擎或自己实现。 css 问题吧 css的问题?css是内嵌式的应该不是吧。我试试看看!谢谢 我是新手 发表于 2013-2-17 15:52 static/image/common/back.gif
css 问题吧
css的问题?css是内嵌式的应该不是吧。我试试看看!谢谢 <br />的问题吧 直接在视图里 $this->load->view('xxx'); 本帖最后由 Sdeep_wang 于 2013-2-18 09:46 编辑
Hex 发表于 2013-2-17 18:40 static/image/common/back.gif
直接在视图里 $this->load->view('xxx');
我是按照CI中文手册做的,它可以引用多个视图现在的问题是每个视图中间怎么会有换行那? qichengzx 发表于 2013-2-17 17:52 static/image/common/back.gif
的问题吧
多个视图引用的时候我把br去掉了! Sdeep_wang 发表于 2013-2-18 09:36 static/image/common/back.gif
我是按照CI中文手册做的,它可以引用多个视图现在的问题是每个视图中间怎么会有换行那? ...
把代码打包发上来吧,换行也是你自己输入进去的,CI 不会给你加换行。 Hex 发表于 2013-2-18 09:38 static/image/common/back.gif
把代码打包发上来吧,换行也是你自己输入进去的,CI 不会给你加换行。
我把源码添加到了7楼!十分感谢管理员的帮助!