在CI配置文件中使用自定义配置值



我得到了custom.php(在配置文件夹内),代码如下

$config['myurl'] = 'somesite.com';

我得到了config.php(标准CI),我想使用custom.php中的值设置base_url,像这样

$config['base_url'] = $this->config->item('myurl');

这样我得到了错误

Using $this when not in object context in /Volumes/HD 2/work/vnl/app/config/config.php on line 18

用于此目的的正确代码是什么?

这在那里不起作用。您想要使用的$this有一个控制器实例,当标准application/config/config.php加载时,它还没有创建。

你可以尝试添加一个pre_system钩子(在配置对象之前加载),并包括一些可以调用的辅助函数,并在application/config/config.php中返回所需的值。通常的常量如APPPATH将在那时可用。

如果你可以让这个配置变量也可以工作(只要把define()application/config/constants.php)。由于配置文件只是一个常规的php源文件,如果需要,您也可以在这里设置条件。

您可以直接使用数组。在自定义配置文件

$config['myurl'] = 'myurl.com';
$config['base_url'] = &$config['myurl'];

一旦加载自定义配置文件,这将改变默认的base_url,您也可以在自定义配置中重置base_url元素,但是在我看来,不建议在另一个配置文件中重置基础url,因为稍后在项目中您可能会丢失它设置的位置,为什么不在主配置文件中设置它(也许使用条件)?

最新更新