简体   繁体   中英

Create constructor method in controller in Yii

I have just started to learn Yii , where I have created one PostController Controller. In this controller I am having one requirement of using Sessions .

So I have created one constructor method and its code is as follows

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

But after creating this constructor the controller was not working and gives error. And after deleting this code my controller was working perfectly. I have written this code inside constructor to not initialize the Session in each method for actionCreate and actionUpdate .

So my question is how can we create constructor in Yii ?

Thanks

You simply forgot to call parent constructor :

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

You could use beforeAction instead of overriding __construct .

And Sergey is right, by default Yii will start session ( autoStart ), you just have to use Yii::app()->session , eg :

Yii::app()->session['var'] = 'value';
public function __construct()
{
      parent::__construct($this->id, $this->module);
}

我使用init() ,但发现人们认为__construct更好。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM