[英]Yii app updateCounters (page views) best way?
我有一个带有控制器(PostController)和数据库中“视图”列的Yii Powered Web应用程序。
访问者查看“帖子”页面时如何更新这些行?
现在我的代码正在运行,但是它是正确的还是有任何意见/建议?
public function actionView($id)
{
$this->render('view',array(
'model'=>$this->loadModel($id),
));
Quotes::model()->updateCounters(array('views'=>+1), 'id=' . $id );
}
在Quotes模型中:
public function afterFind() {
$this->view++;
$this->save();
}
找到后每次都会更新视图。 在控制器中:
public function actionView($id)
{
$this->render('view',array(
'model'=>$this->loadModel($id),//or 'model'=>Quotes::model()->findByPk($id)
));
}
从1.1.8开始,您可以使用以下代码:
$this->saveCounters(array('views'=>1));
它会更快。 在此处查看更多信息: http : //www.yiiframework.com/doc/api/1.1/CActiveRecord#saveCounters-detail
您需要为帖子创建一个模型。 如果您将该模型命名为Post(如果您还没有)。 您需要使用此PHP代码更新值:
Post::model()->updateByPk(1, array('view' => 2));
假设您的行具有一个值为1的ID(例如,页面ID),并且您想使用值2更新视图列。
您的模型类型是CActiveRecord。 在以下网址找到很好的文档: http : //www.yiiframework.com/doc/api/1.1/CActiveRecord#updateByPk-detail
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.