0

すべての Web ページの最初でこのコードを実行したいのですが、

私はコードイグナイターを使用しています

コードは次のとおりです。

if(!$this->session->userdata('lang')):
$this->session->set_userdata('lang','ar');
endif;

どうやってするか?

4

1 に答える 1

1

まだ読んでいない場合は、CodeIgniter の言語クラスを見る価値があるかもしれません。


ネイティブCI_Controllerクラスを拡張できます。このクラスを拡張すると、ネイティブ コア クラスの元の機能を維持しながら、追加の機能を追加できます。

コードをすべてのページで最初に実行するには、新しく作成したサブクラスのコンストラクターにコードを追加します。コントローラーを新しいサブクラスで拡張すると、このコードは、コントローラー内の関数が実行されたときに実行されます( s) が呼び出されます。これをする:

サブクラスを作成する

MY_Controller.phpプロジェクトのディレクトリにという名前のファイルを作成しますapplication/core/CI_Controllerこの新しいクラスは、親コンストラクターを拡張する必要があります。クラスは次のようになります。

<?php    

class MY_Controller extends CI_Controller {

    public function __construct()
    {
        parent::__construct();  //make sure you extend the parent constructor

        //Your code:
        if( ! $this->session->userdata('lang') )
            $this->session->set_userdata('lang','ar');
    }

}

クラス接頭辞が正しいことを確認してください

新しいクラスの接頭辞として使用MY_した場合は、ここで何もする必要はありませんが、とにかく知っておくと便利です。

サブクラスのプレフィックスがapplication/config/config.phpファイルに正しく設定されていることも確認する必要があります。

$config['subclass_prefix'] = 'MY_';

このプレフィックスは、作成する新しいクラスのプレフィックスと一致する必要があります。デフォルトでは ですMY_が、対応している限り、必要なものに変更できます - FOO_BAR_WHATEVER_... 例外はCI_、CodeIgniter のネイティブ ライブラリ用に予約されている です。

新しいサブクラスですべてのアプリケーションのコントローラーを拡張します

is(/are)のコントローラーapplication/controllers/はおそらく拡張してCI_Controllerいます。新しく作成されたサブクラスを利用するには、コントローラーを拡張MY_Controllerして親コンストラクターを作成する必要があります。

class Welcome extends MY_Controller {

    function __construct()
    {
        parent::__construct();
    } 

    //More functions...
}
于 2013-03-30T15:44:30.267 に答える