一尘不染

在CodeIgniter的视图中包含视图的最佳方法

php

我正在开始一个大型的Codeigniter项目,并想尝试为内容片段(如可能在不同页面/控制器上显示的数据循环)创建一些可重用的“迷你”视图。

从主控制器的视图中调用视图更好吗?如果是这样,怎么办?还是应该从控制器调用“迷你视图”,然后将视图的代码传递给主视图?


阅读 320

收藏
2020-05-29

共1个答案

一尘不染

其他视图中的视图称为 嵌套视图 。在CodeIgniter中包括嵌套视图的方法有两种:

1.将嵌套视图加载到控制器内部

预先加载视图并传递到另一个视图。首先将其放在控制器中:

<?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?>在您希望菜单出现的位置进入视图。

2.“从内部”加载视图

首先将其放在控制器中:

<?php
  $this->load->view('home');
?>

然后将其放在/application/views/home.php视图中:

<?php $this->view('menu'); ?>

<p>Other home content...</p>

关于最佳方法,相对于第二方法,我更喜欢第一方法,因为通过使用第一方法,我不必混淆代码,这与 include
php不同。尽管两者间接相同,但是第一种方法比第二种方法更清晰,更干净!

2020-05-29