我需要计算观看次数。我正在使用会话变量来避免重复计数。我需要检查会话的view_count是否已设置,然后将其设置为false并增加视图计数
$currentPost = Post::where('slug',$slug)->first();
$comments = \App\Comment::where('post_id',$currentPost->id)->get();
if(\Session::get('view_count')) {
\Session::put('view_count', false);
$currentPost->view_count = $currentPost->view_count + 1;
$currentPost->save();
}
答案 0 :(得分:1)
你不能只是做
if (Session::has('your_key'))
{
//your code here
}
确定会话中是否存在项目
要确定会话中是否存在某个项目,可以使用has方法。如果该项存在且不为null,则has方法将返回true:
if ($request->session()->has('users')) {
//
}
要确定会话中是否存在某项,即使其值为null
,也可以使用exists
方法。如果存在该项,则exist方法将返回true:
if ($request->session()->exists('users')) {
//
}
答案 1 :(得分:1)
我假设您要检查访问者是否已查看某篇博客文章,在这种情况下,我可能会做类似的事情。
$currentPost = Post::where('slug', $slug)->first();
// You should also probably set up your relationship with Comments
$comments = \App\Comment::where('post_id', $currentPost->id)->get();
if(! in_array($currentPost->id, session()->get('posts_viewed', []))) {
session()->push('posts_viewed', $currentPost->id);
// Your increment could also be simplified as follows
$currentPost->increment('view_count');
}
在您的特定情况下,您将只能跟踪用户是否查看了一篇特定的博客文章。但是,如果使用数组并继续将查看的博客文章推入其中,则可以跟踪许多博客文章的视图。