5

学習を始めたばかりで、1つのコントローラーYiiを作成しました。PostControllerこのコントローラーでは、を使用するための1つの要件がありSessionsます。

だから私は1つのコンストラクターメソッドを作成しました、そしてそのコードは次のとおりです

public $session;
public function __construct() {
    $this->session = new CHttpSession;
    $this->session->open();
}

しかし、このコンストラクターを作成した後、コントローラーは機能せず、エラーが発生しました。そして、このコードを削除した後、私のコントローラーは完全に機能していました。Sessionとの各メソッドでをactionCreate初期化しないように、コンストラクター内にこのコードを記述しましたactionUpdate

だから私の質問は、どのようにしてコンストラクターを作成できるかということYiiです。

ありがとう

4

3 に答える 3

7

親コンストラクターを呼び出すのを忘れただけです:

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

beforeActionをオーバーライドする代わりに使用できます__construct

そしてSergeyは正しいです、デフォルトでYiiはセッション(autoStart)を開始します、あなたはただ使用する必要がありますYii::app()->session、例えば:

Yii::app()->session['var'] = 'value';
于 2013-03-25T08:11:19.663 に答える
2
public function __construct()
{
      parent::__construct($this->id, $this->module);
}
于 2013-11-25T23:28:47.260 に答える
1

そのためにinit()を使用しますが、__constructの方が優れていると人々が考えるものを見つけました。

于 2013-03-25T08:18:27.163 に答える