CodeIgniter-在视图中访问$ config变量


101

我经常需要访问$config视图中的变量。我知道我可以将它们从控制器传递给load->view()。但是,明确地执行此操作似乎过于繁琐。

是否有某种方法或技巧可以$config从CI视图访问变量,而不会用备用代码干扰控制器?

Answers:


194

$this->config->item() 工作良好。

例如,如果配置文件包含$config['foo'] = 'bar';然后$this->config->item('foo') == 'bar'


很好的有用答案
Yagnesh bhalala

29

同样,Common函数config_item()在整个CodeIgniter实例中的几乎所有地方都有效。控制器,模型,视图,库,助手,钩子等等。


1
谢谢您-我在从钩子访问配置值时遇到了麻烦。对于其他任何人,这都很棒。
CashIsClay13年

1
但是,config_item()没有提供的碰撞保护$this->config->item()
Ijas Ameenudeen 2014年

15

您可以执行以下操作:

$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');

3
实际上,在视图中$ this始终引用CI_Loader,而get_instance()始终引用CI_Base()。
菲尔·斯特金

8

$this->config->item('config_var') 不适用于我的情况。

我只能config_item('config_var');在视图中回显变量


4

您的控制器应从数据库,配置等收集所有信息。有很多充分的理由坚持这一点。一个很好的理由是,这将使您可以轻松地更改信息的来源,而不必对视图进行任何更改。


2

每当需要访问配置变量时,我都倾向于使用:$ this-> config-> config ['variable_name'];


我不知道为什么,但是从今天起$ this-> config-> item('var_name'); 不再对我有用..谢谢您的替代选择。只是想知道..这种方法合法吗?
dapidmini

2
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"

2

这就是我做的。在config.php中

$config['HTML_TITLE'] = "SO TITLE test";

在applications / view / header.php中(假设HTML代码)

<title><?=$this->config->item("HTML_TITLE");?> </title>

标题示例


1

$config['cricket'] = 'bat'; 在config.php文件中

$this->config->item('cricket') 鉴于此


0

如果您试图将配置变量访问控制器而不是使用

$this->config->item('{variable name which you define into config}');

如果您尝试将config变量访问到控制器外部(帮助器/挂钩),请使用

$mms = get_instance();  
$mms->config->item('{variable which you define into config}');

0

例如,如果您有:

$config['base_url'] = 'www.example.com'

然后在您的config.php中设置

echo base_url();

这几乎在每个地方都非常有效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.