我经常需要在视图中访问$config
个变量。
我知道我可以将它们从控制器传递给load->view()
。
但明确地做这件事似乎过分了。
是否有一些方法或技巧可以在没有CI视图的情况下访问$config
变量
带有备用代码的令人不安的控制器?
答案 0 :(得分:184)
$this->config->item()
效果很好。
例如,如果配置文件包含$config['foo'] = 'bar';
,那么$this->config->item('foo') == 'bar'
答案 1 :(得分:27)
此外,Common函数config_item()
在整个CodeIgniter实例中几乎无处不在。控制器,模型,视图,库,助手,钩子等。
答案 2 :(得分:15)
你可以这样做:
$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');
答案 3 :(得分:8)
$this->config->item('config_var')
对我的情况不起作用。
我只能使用config_item('config_var');
来回显视图中的变量
答案 4 :(得分:4)
您的控制器应该从数据库,配置等收集所有信息。有很多充分的理由坚持这一点。一个很好的理由是,这将允许您非常轻松地更改信息的来源,而不必对您的视图进行任何更改。
答案 5 :(得分:2)
每当我需要访问配置变量时,我倾向于使用:$ this-> config-> config ['variable_name'];
答案 6 :(得分:2)
echo $this->config->config['ur config file']
如果您的配置文件也出现了图片,您必须像这样访问,例如我在config文件夹中包含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"
答案 7 :(得分:1)
$config['cricket'] = 'bat';
$this->config->item('cricket')
在视图中使用此
答案 8 :(得分:1)
这就是我做的。在config.php中
$config['HTML_TITLE'] = "SO TITLE test";
在applications / view / header.php中(假设是html代码)
<title><?=$this->config->item("HTML_TITLE");?> </title>
答案 9 :(得分:0)
如果您尝试将配置变量访问控制器而不是使用
$this->config->item('{variable name which you define into config}');
如果您尝试将config变量访问到控制器外部(帮助程序/挂钩),请使用
$mms = get_instance();
$mms->config->item('{variable which you define into config}');
答案 10 :(得分:0)
例如,如果您有:
<input type="hidden" name="zyx" value="test id">
在您的 config.php 中设置
$config['base_url'] = 'www.example.com'
这几乎在每个地方都很好。
/ *编辑* /
这可能适用于最新版本的Codeigniter(4及更高版本)。