如何在laravel中添加post的view count

qzlgjiam  于 2023-03-24  发布在  其他
关注(0)|答案(3)|浏览(99)

我正在使用laravel执行一个博客应用程序。我想跟踪帖子视图的计数,每当用户查看特定的博客文章时,它应该只增加一次,无论是注册用户还是非注册用户。...并且还想根据视图计数显示查看次数最多的博客。任何人都可以帮助逻辑。

/ Table
Schema::create('posts', function(Blueprint $table)
{
    $table->increments('id');
    $table->text('body')
    $table->integer('count');
    ...
    $table->timestamps();
});


public function show($id) 
{
    $post = Post::find($id);

    Post::update([
        'count' => $post->count + 1
    ]);

    return View::make('posts', compact('post'));
}
bvuwiixz

bvuwiixz1#

public function show($id) 
{
   $post = Post::find($id);
   $post->update([
    'count' => $post->count + 1
   ]);
   return View::make('posts', compact('post'));
}
e4eetjau

e4eetjau2#

您有两个要求:
1.增加每个视图的视图计数。

public function show($id) 
{
    $post = Post::find($id);

    Post::update([
        'count' => $post->count + 1
    ]);

    return View::make('posts', compact('post'));
}

1.根据浏览次数显示浏览次数最多的博客

$post = Post::orderBy('count', 'DESC')->first();

1.另外,要根据浏览次数显示最多浏览的博客列表,

$post = Post::orderBy('count', 'DESC')->get();
daolsyd0

daolsyd03#

此问题有正确答案,但如果您使用Laravel 9.x或更高版本。那么您可以使用increment()
可读性更强。
例如:

public function show($id) 
{
   $post = Post::find($id);
   $post->increment('count');

   return View::make('posts', compact('post'));
}

相关问题