我正在开始一个大型的Codeigniter项目,并想尝试为内容片段(如可能在不同页面/控制器上显示的数据循环)创建一些可重用的“迷你”视图。
从主控制器的视图中调用视图更好吗?如果是这样,怎么办?还是应该从控制器调用“迷你视图”,然后将视图的代码传递给主视图?
其他视图中的视图称为 嵌套视图 。在CodeIgniter中包括嵌套视图的方法有两种:
预先加载视图并传递到另一个视图。首先将其放在控制器中:
<?php // the "TRUE" argument tells it to return the content, rather than display it immediately $data['menu'] = $this->load->view('menu', NULL, TRUE); $this->load->view ('home', $data); ?>
然后<?=$menu?>在您希望菜单出现的位置进入视图。
<?=$menu?>
首先将其放在控制器中:
<?php $this->load->view('home'); ?>
然后将其放在/application/views/home.php视图中:
/application/views/home.php
<?php $this->view('menu'); ?> <p>Other home content...</p>
关于最佳方法,相对于第二方法,我更喜欢第一方法,因为通过使用第一方法,我不必混淆代码,这与 include php不同。尽管两者间接相同,但是第一种方法比第二种方法更清晰,更干净!