Я только начал изучать Yii , где я создал один контроллер PostController . В этом контроллере у меня есть одно требование использования Sessions .
Поэтому я создал один метод конструктора, и его код выглядит следующим образом
public $session; public function __construct() { $this->session = new CHttpSession; $this->session->open(); }
Но после создания этого конструктора контроллер не работал и выдавал ошибку. И после удаления этого кода мой контроллер работал отлично. Я написал этот код внутри конструктора, чтобы не инициализировать Session в каждом методе actionCreate и actionUpdate .
Итак, мой вопрос: как мы можем создать конструктор в Yii ?
благодаря
Вы просто забыли вызвать родительский конструктор:
public function __construct() { ..... parent::__construct(); }
Вы можете использовать beforeAction вместо переопределения __construct .
И Сергей прав, по умолчанию Yii начнет сеанс ( autoStart ), вам просто нужно использовать Yii::app()->session , например:
Yii::app()->session['var'] = 'value';
public function __construct() { parent::__construct($this->id, $this->module); }
Я использую для этого init () , но обнаружил, что люди думают, что __construct лучше.