在Yii中的控制器中创建构造函数方法

时间:2013-03-25 04:36:02

标签: php mysql yii

我刚刚开始学习Yii,在那里我创建了一个PostController控制器。在这个控制器中,我有一个使用Sessions的要求。

所以我创建了一个构造函数方法,其代码如下

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

但在创建此构造函数后,控制器无法正常工作并出错。删除此代码后,我的控制器工作正常。我已在构造函数中编写此代码,以便不在SessionactionCreate的每个方法中初始化actionUpdate

所以我的问题是我们如何在Yii中创建构造函数?

由于

3 个答案:

答案 0 :(得分:6)

你只是忘了调用父构造函数:

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

您可以使用beforeAction代替覆盖__construct

并且谢尔盖是正确的,默认情况下,Yii会启动会话(autoStart),您只需使用Yii::app()->session,例如:

Yii::app()->session['var'] = 'value';

答案 1 :(得分:2)

public function __construct()
{
      parent::__construct($this->id, $this->module);
}

答案 2 :(得分:1)

我使用init(),但found人们认为 __ construct 更好。