CodeIgniter tips:视图中的参数传递

在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层的结构也很好

你可能感兴趣的:(数据结构,mvc,PHP,框架)