【发布时间】:2011-02-07 13:19:07
【问题描述】:
我经常需要访问视图中的$config 变量。
我知道我可以将它们从控制器传递给load->view()。
但是明确地这样做似乎有些过分。
是否有某种方法或技巧可以从 CI 视图访问 $config 变量,而无需
用多余的代码打扰控制器?
【问题讨论】:
标签: php codeigniter
我经常需要访问视图中的$config 变量。
我知道我可以将它们从控制器传递给load->view()。
但是明确地这样做似乎有些过分。
是否有某种方法或技巧可以从 CI 视图访问 $config 变量,而无需
用多余的代码打扰控制器?
【问题讨论】:
标签: php codeigniter
$this->config->item() 工作正常。
例如,如果配置文件包含$config['foo'] = 'bar';,那么$this->config->item('foo') == 'bar'
【讨论】:
此外,Common 函数config_item() 在整个 CodeIgniter 实例中几乎无处不在。控制器、模型、视图、库、助手、钩子等等。
【讨论】:
config_item() 没有$this->config->item() 中提供的碰撞保护
你可以这样做:
$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');
【讨论】:
$this->config->item('config_var') 不适用于我的情况。
我只能使用config_item('config_var'); 在视图中回显变量
【讨论】:
您的控制器应该从数据库、配置等中收集所有信息。有很多充分的理由坚持这一点。一个很好的理由是,这将允许您非常轻松地更改该信息的来源,而不必对您的视图进行任何更改。
【讨论】:
每当我需要访问我倾向于使用的配置变量时:$this->config->config['variable_name'];
【讨论】:
echo $this->config->config['ur config file']
如果您的配置文件也出现在图片中,您必须像这样访问,例如我在配置文件夹中包含一个 app.php 我有一个变量
$config['50001'] = "your message"
现在我想在我的控制器或模型中访问。
尝试以下两种情况,一种应该可行
案例1:
$msg = $this->config->item('ur config file');
echo $msg['50001']; //out put: "your message";
案例2:
$msg = $this->config->item('50001');
echo $msg; //out put: "your message"
【讨论】:
$config['cricket'] = 'bat'; 在 config.php 文件中
$this->config->item('cricket')在视图中使用这个
【讨论】:
如果您尝试将配置变量访问到控制器而不是使用
$this->config->item('{variable name which you define into config}');
如果您尝试将配置变量访问到控制器外部(帮助程序/挂钩),请使用
$mms = get_instance();
$mms->config->item('{variable which you define into config}');
【讨论】:
例如,如果您有:
$config['base_url'] = 'www.example.com'
然后在你的 config.php 中设置
echo base_url();
这几乎在每个地方都非常有效。
/* 编辑 */
这可能适用于最新版本的 codeigniter(4 及更高版本)。
【讨论】: