1

誰かが私のサイトのページを表示したときに、訪問に関する情報をイベント テーブルに保存したいと考えています。

現時点では、このコードが表示されていますが、データベースにデータが保存されていないようです-

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

この方法でオブジェクトを作成することは可能ですか/お勧めですか?

4

1 に答える 1

2

コントローラーにデータを保存することをお勧めします。関心の分離のため。

とにかく、通常のプロセスではすべてのビューが「レンダリング」されるため、このレンダリング呼び出しの前に、アクション$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');
}
于 2012-06-29T18:42:23.307 に答える