当我尝试在define('LANG', $this->uri->rsegment(2));
中使用constants.php
时,我收到了此错误:
Using $this when not in object context in constants.php
。
我不知道为什么。我是 codeIgniter 的新手,我想定义一个从URI中获取语言的常量。我已经使用REQUEST_URI
完成了类似的操作,但使用了uri->segment
;这将更容易。
答案 0 :(得分:0)
codeigniter的架构方式,你不能在config.php中使用$this
,因为所有框架资源都没有加载时间constant.php被加载。
为了满足您的需求,您应该执行以下操作:
创建一个新的自定义配置文件,比如app_config.php(您可以随意调用它)
将此代码添加到app_config文件:
$ci = &get_instance();
define('LANG', $ci->uri->rsegment(2));
将此文件放在config文件夹(config.php所在的文件夹)
在autoload.php中,添加此配置文件的名称以自动加载为:
/*
| -------------------------------------------------------------------
| Auto-load Config files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['config'] = array('config1', 'config2');
|
| NOTE: This item is intended for use ONLY if you have created custom
| config files. Otherwise, leave it blank.
|
*/
$autoload['config'] = array('app_config');
现在,您将能够在整个应用程序中访问常量LANG。