Я только начал изучать 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 лучше.