尝试在Yii中的页面视图上创建模型

时间:2012-06-29 17:59:39

标签: php logging yii

当有人查看我的网站页面时,我想在我的活动表中保存一些有关访问的信息。

目前我在我的视图中有这个代码 - 但我似乎没有将任何数据保存到数据库中 -

if(!Yii::app()->user->isGuest) {
$lview=new Event;
$lview->userid=Yii::app()->user->id;
$lview->type="lview";
$lview->data=$model->id;
$lview->event="view";
$lview->save();
}

是否可以/建议以这种方式创建对象?

1 个答案:

答案 0 :(得分:2)

唯一可行的方法是将数据保存在控制器中。对于separation of concerns

正如每个视图一样,在正常过程中使用$this->render('view');进行“渲染”,您应该在action之前执行此渲染调用之前的保存过程。

至于保存问题,请使用$lview->getErrors();检查错误,然后从那里进行调试:

public function actionShowSomeView(){
    // initialize your model here

    if(!Yii::app()->user->isGuest) {
        $lview=new Event;
        // assign values to $lview
        if(!$lview->save()){
            CVarDumper::dump($lview->getErrors());;
        }
    }

    // do your other stuff

    $this->render('view');
}