您的位置:首页 > 其它

CodeIgniter tips:视图中的参数传递

2013-07-01 16:27 190 查看
在CI框架中,很好的MVC分层结构,但其实在VIEW层方面,CI是可以设置参数传递的,比如,传统上的做法,是:
<?php
class Page extends 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');
}

}

这个是一个页面中的头部,中间实际部分,尾部的模版加载;其中CONTENT部分放的是实际的
数据变化内容的部分DATA,
而假设另外一个页面也是同样的结构的话,则一般会这样搞:
function page2()
{
$data['page_title'] = 'Your title for content 2';
$this->load->view('header');
$this->load->view('menu');
$this->load->view('content2', $data);
$this->load->view('footer');
}
}
但可以看到,随着页面的规模增大,这样的写法是很累赘的哦,可以考虑如下的写法:
单独创建一个container.php,放在/system/application/view/目录下,
<html>
<head>
<?php
$this->load->view('meta');
?>
</head>
<body>
<?php
$this->load->view('header');
$this->load->view('menu');
$this->load->view($page);

$this->load->view('footer');
?>
</body>
注意这里的$page实际上是变化的参数,
则在控制层中,可以这样:
<?php
class Pages extends Controller {
function index() {
$data['page_title'] = 'Your title';
$data['page'] = 'content'; //这里传递的是实际的显示变化内容的模版
$this->load->view('container',$data);
}

function page2() {
$data['page_title'] = 'Your title for content 2';
$data['page'] = 'content2';
$this->load->view('container',$data);
}
}
?>
</html>
这样就十分简单了,整体VIEW层的结构也很好
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: