当有人查看我的网站页面时,我想在我的活动表中保存一些有关访问的信息。
目前我在我的视图中有这个代码 - 但我似乎没有将任何数据保存到数据库中 -
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();
}
是否可以/建议以这种方式创建对象?
答案 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');
}