据我所知,并不一定是一种"最佳"方式,但有一种常见的方法,我已经多次使用,并且已经习惯了.它通常涉及一个关联数组,以及extract()函数或变量变量.
基本上,您所做的就是使用将成为模板变量的键将数据设置为关联数组.
//inside the controller
$data['name'] = 'my name';
$data['zip'] = '90210';
Run Code Online (Sandbox Code Playgroud)
的$data数组被传递到视图某种方式,直接或间接地,并且通过萃取extract()或使用可变变量的循环(相同的事情,真的).然后可以包含模板,变量在本地范围内.
//inside the view rendering process
extract($data);
//$name and $zip now exist
Run Code Online (Sandbox Code Playgroud)
Code Igniter遵循这个确切的过程.在system\libraries\Loader.php最新版本(1.7.1)中,有一个名为的函数view(),您可以在CI控制器中调用它来加载视图/模板(在CI中也是如此).您将数据数组作为第二个参数传递.
view()调用_ci_load()在同一个文件中调用的内部函数,该函数提取传递它的数据(以及其他一些古怪的缓存内容).您的变量已准备好在本地函数范围内执行,并且可以在后续模板内部进行操作include(),因为包含文件中发生的所有内容也存在于本地_ci_load()函数范围内.
我之前在一个快速而又脏的自制MVC中使用了完全相同的设计.这非常有效.
| 归档时间: |
|
| 查看次数: |
2637 次 |
| 最近记录: |