如何访问codeigniter控制器中的自定义配置变量


How to access custom config variable in codeigniter controller

我有一个codigniter项目,它有一个名为的自定义配置文件

application/config/my_config_variables.php:

这包含

<?php
$config['days'] = 20;

in:

 application/config/autoload.php

我添加了:

$autoload['config'] = array('my_config_variables');

当我尝试在我的控制器中使用访问这个时

 echo $this->$config['new_daily_contacts'];

我得到:

Fatal error: Cannot access empty property.

我做错了什么?

附录:

在我的控制器中,我添加了:

 // An alternate way to specify the same item:
            $my_config = $this->config->item('my_config_variables',true);
            var_dump($my_config);

这会输出FALSE——为什么?

查看Codeigniter的配置文档。

echo $this->config->item('new_daily_contacts');

这将尝试获取$config['new_daily_contacts'],但从您的帖子来看,您的配置文件中似乎只有$config['days']。但这应该会让你指向正确的方向。

备用方式

另一种方法是尝试加载配置,但使用的是项方法,而不是加载方法。在item方法中,第二个参数是要在配置数组中引用的索引。例如。用你上面的例子。

$my_config = $this->config->load('my_config_variables', true);
var_dump($my_config);
$days = $this->config->item('days', 'my_config_variables');

因为在load方法上传递true作为第二个参数将创建一个与配置文件同名的索引。如果碰巧有其他配置文件包含相同的配置名称,这有助于避免任何冲突。

$config['days'];变为$config['my_config_variables']['days']

为了访问该配置变量,您必须在item方法中传递索引。

https://github.com/bcit-ci/CodeIgniter/blob/2.1-stable/system/core/Config.php#L189