Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create constructor method in controller in Yii

Tags:

php

mysql

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

like image 674
Yogesh Suthar Avatar asked Jan 14 '23 20:01

Yogesh Suthar


1 Answers

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, e.g. :

Yii::app()->session['var'] = 'value';
like image 169
soju Avatar answered Jan 19 '23 10:01

soju