我有一个带有自定义配置文件的codigniter项目
application/config/my_config_variables.php:
Run Code Online (Sandbox Code Playgroud)
这包含
<?php
$config['days'] = 20;
Run Code Online (Sandbox Code Playgroud)
在:
application/config/autoload.php
Run Code Online (Sandbox Code Playgroud)
我已经添加:
$autoload['config'] = array('my_config_variables');
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下命令在我的控制器中访问它时:
echo $this->$config['new_daily_contacts'];
Run Code Online (Sandbox Code Playgroud)
我明白了:
Fatal error: Cannot access empty property.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
附录:
在我的控制器中,我添加了:
// An alternate way to specify the same item:
$my_config = $this->config->item('my_config_variables',true);
var_dump($my_config);
Run Code Online (Sandbox Code Playgroud)
这输出FALSE - 为什么?
sla*_*pyo 18
查看Codeigniter 上的配置文档.
echo $this->config->item('new_daily_contacts');
Run Code Online (Sandbox Code Playgroud)
这将试图抓住,$config['new_daily_contacts']但从你的帖子看起来你只有$config['days']你的配置文件.但这应该让你指出正确的方向.
替代方式
使用替代方法,您尝试加载配置,但是您使用的是item方法,而不是load方法.在item方法中,第二个参数是要在config数组中引用的索引.例如.以上为例.
$my_config = $this->config->load('my_config_variables', true);
var_dump($my_config);
$days = $this->config->item('days', 'my_config_variables');
Run Code Online (Sandbox Code Playgroud)
因为在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
| 归档时间: |
|
| 查看次数: |
22616 次 |
| 最近记录: |