当我尝试使用define('LANG', $this->uri->rsegment(2));
in 时constants.php
,出现此错误:
Using $this when not in object context in constants.php
.
我不知道为什么。我对codeIgniter很陌生,我想定义一个常量,它将从 URI 中获取语言。我已经使用 ; 做了类似的事情REQUEST_URI
,但使用uri->segment
; 那会容易得多。
当我尝试使用define('LANG', $this->uri->rsegment(2));
in 时constants.php
,出现此错误:
Using $this when not in object context in constants.php
.
我不知道为什么。我对codeIgniter很陌生,我想定义一个常量,它将从 URI 中获取语言。我已经使用 ; 做了类似的事情REQUEST_URI
,但使用uri->segment
; 那会容易得多。
codeigniter的架构方式,不能 $this
在config.php中使用,因为在constant.php加载的时候所有的framework资源都没有加载。
为了执行您需要执行的操作,您应该执行以下操作:
创建一个新的自定义配置文件,比如 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..