我创建了一个简单的应用程序来计算文章的视图。在数据库中,articles表有一个列view_count。我也有一个明确的事件&每次查看某篇文章时都会增加view_count的侦听器:
问题,如何更新view_count,并存储在数据库中..?!
class ArticleViewsextends Event
{
use SerializesModels;
public $article;
public function __construct(Article $article)
{
$this->article = $article;
}
public function broadcastOn()
{
return [];
}
}
class IncrementArticleViewsCounts
{
public function __construct() { }
public function handle(ArticleViewsextends $event)
{
$event->article->increment('view_count');
}
}
$articles= new Scholarship();
Event::fire(new ArticleViewsextends ($scholarships));
parent::$data['articles'] = $articles->getAllActiveArticlesForFrontEnd(parent::$data['language']);
在视图中不计算。
答案 0 :(得分:0)
我猜你需要在你的听众中使用
public function handle(ArticleViewsextends $event)
{
$event->article->increment('view_count'); // Update your object
$event->article->save(); // update the database
}
答案 1 :(得分:0)
Route::get('/article/{article}', function (Article $article) {
Redis::zincrBy('views', 1, $article);//or any other key name
return $article;
});
这将为您提供额外的工具,以获得最多观看的文章 与
$articles= Redis::zrevrange('views', 0, -1);
有关详情,请查看here