【问题标题】:Trying to create model on page view in Yii试图在 Yii 的页面视图上创建模型
【发布时间】:2012-07-01 06:38:00
【问题描述】:

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

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

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();
}

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

【问题讨论】:

  • 视图处理展示,这应该在控制器中。该模型可能有一些错误,请在保存或验证后尝试print_r($lview->errors)

标签: php logging yii


【解决方案1】:

唯一可取的做法是将数据保存在控制器中。对于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');
}

【讨论】:

  • 我在打字时没有看到 Ors 的评论
猜你喜欢
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 1970-01-01
相关资源
最近更新 更多