0

当我尝试使用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; 那会容易得多。

4

1 回答 1

0

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..

于 2012-08-10T15:02:43.097 回答