我有两个配置文件。
config.php(代码点燃核心配置)
和email.php(使用时通过电子邮件类自动加载)
我想做的是。
在config.php中有
$config['env'] = 'hailwood_dev';
然后在email.php中
if($config['env'] == 'hailwood_dev'){
//email variables like smtp server to do with localhost
} elseif($config['env'] == 'production'){
//email variables like smtp server to do with production
}
但这没有任何影响(我猜测为$ config ['env']没有这些值。)
如何访问此值?
答案 0 :(得分:8)
我检查了请求生命周期中的那一点,CodeIgniter对象的config属性只是一个数组,而不是一个配置对象。
所以你应该能够得到这样的配置设置:
$this->config['env']
所以这应该有效:
if ($this->config['env'] == 'hailwood_dev')
{
//email variables like smtp server to do with localhost
}
elseif ($this->config['env'] == 'production'){
//email variables like smtp server to do with production
}
如果要自动加载配置文件,请确保以正确的顺序自动加载。配置文件必须依赖于它后自动加载。
答案 1 :(得分:5)
将此添加到您的电子邮件配置文件中。
$environment = config_item('env');
OR THIS
$environment = $this->config->item('env');
不确定第一个是否适用于您的设置。大多数人似乎都使用第二种。
答案 2 :(得分:3)
试试这个:
$env = $this->config->item('env');
if ($env == "dev_server") {
// Do this...
}
else {
// Do this..
}
答案 3 :(得分:0)
在这种情况下,您可能希望将配置放在
中http://codeigniter.com/user_guide/libraries/config.html
与其他配置文件结合使用,您可以在同一环境的两个配置文件之间共享信息
答案 4 :(得分:0)
使用config_item函数(system / core / Common.php)
/ ** *返回指定的配置项 * * @access public * @return mixed
答案 5 :(得分:0)
请参阅以下解决方案
$这 - > config->配置[ 'BASE_URL']
echo "<pre>";
print_r($this->config);
以上将打印所需的详细信息
答案 6 :(得分:0)
在CodeIgniter 3.0中,访问另一个配置文件中的配置变量的解决方案是获取CodeIgniter实例。一旦你有了它的引用,你就可以使用item
函数进行访问。
$CI =& get_instance();
$var = $CI->config->item('item_name');