当有人查看我网站的页面时,我想在我的事件表中保存一些有关访问的信息。
目前,我的视图中有此代码 - 但我似乎没有将任何数据保存到数据库中 -
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();
}
以这种方式创建对象是否可能/可取?
唯一建议做的是将数据保存在控制器中。用于分离关注点。
由于正常过程中的每个视图都是使用 $this->render('view');
"渲染"的,因此您应该在此渲染调用之前在操作中执行此保存过程。
至于保存问题,请使用$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');
}