问题:
出于好奇,我想知道 Codeigniter 是否提供了一种将特定数据始终加载到视图中的方法。
例如:我有一个配置文件,其中包含有利于访问所有页面的视图内部的站点信息,而不是每次加载视图时都必须调用加载该数据,我是否可以始终包含它?
<?php
//Standard way
function index() {
$this->load->config('site_settings', true);
$data['config'] = $this->config->item('site_settings');
$data['fizz'] = 'buzz';
$this->load->view('index', $data);
}
//Way I'd like to see
function index() {
$data['foo'] = 'bar';
$this->load->view('index', $data); //$data already includes $data['config']
}
?>
选项1:
某种 MY_Loader 扩展 - 我们已经有一个 MY_Controller,所以做一个 MY_Loader 类并让 MY_Controller 调用它而不是 CI_Loader 不会太牵强。但是,我不确定这是可能的。
选项 2:
我知道如果您编辑系统文件,这是可能的,但我真的不希望这样做。因为这使得更新 CI 时很难跟踪更改。
选项 3:
???
想法?
编辑澄清:这专门用于将数据加载到视图中,扩展CI_Controller
和设置成员变量,只能从模型和控制器访问,而不是视图。