0

で使用しようとするdefine('LANG', $this->uri->rsegment(2));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がロードされるまでにすべてのフレームワークリソースがロードされないためです。

必要なことを行うには、次のことを行う必要があります。

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 に答える