Php Laravel 5.3柜台访客页面
我正在网站上做一个计数器页面 这是我的控制器后控制器:Php Laravel 5.3柜台访客页面,php,laravel,Php,Laravel,我正在网站上做一个计数器页面 这是我的控制器后控制器: public function show(Post $post) { $post->increment('view_count'); return view("site.show", compact('post')); } 这是我的RouteService提供商: public function boot() { parent::boot();
public function show(Post $post)
{
$post->increment('view_count');
return view("site.show", compact('post'));
}
这是我的RouteService提供商:
public function boot()
{
parent::boot();
Route::bind('post', function ($slug) {
return Post::published()->where('slug', $slug)->first();
});
}
这段代码正在工作,但我有一个问题,每次我刷新页面时,我的帖子选项卡中的字段(“查看次数”)总是递增,问题是如何限制同一访问者执行相同的操作,如刷新页面等,提前感谢你可以在会话中保留一组帖子ID,在进行查询之前检查他是否已经看到了它。如果要使这些时间戳无效,还可以存储视图的时间戳
public function show(Post $post)
{
$ids = Session::get('ids') ? Session::get('ids') : [];
if (!in_array($post->id, $ids)) {
$post->increment('view_count');
$ids[] = $post->id;
Session::put('ids', $ids);
}
return view("site.show", compact('post'));
}