5

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

所以我创建了一个构造方法,它的代码如下

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

但是在创建此构造函数后,控制器无法正常工作并给出错误。删除此代码后,我的控制器工作正常。我已经在构造函数中编写了这段代码,以便不在Session每个方法中初始化actionCreateactionUpdate

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

谢谢

4

3 回答 3

7

您只是忘记调用父构造函数:

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

您可以使用beforeAction而不是覆盖__construct.

并且Sergey是对的,默认情况下 Yii 将启动会话(autoStart),你只需要使用Yii::app()->session,例如:

Yii::app()->session['var'] = 'value';
于 2013-03-25T08:11:19.663 回答
2
public function __construct()
{
      parent::__construct($this->id, $this->module);
}
于 2013-11-25T23:28:47.260 回答
1

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

于 2013-03-25T08:18:27.163 回答