首页 > 解决方案 > 使用 cookie 的点赞功能

问题描述

假设like我的模型中有一个字段,现在我想使用 Cookie 实现添加点赞的功能。比如我们有一个文章ID,我们签入cookies,如果没有数据,那么我们加个like,设置时间为10小时,例如,以此类推,10小时过去了,我们检查,再次我们可以添加喜欢并再次设置这个时间。如果数据已经存在,那么我们不添加like,也不更新时间。

谁能看到这方面的一些例子?或者从哪里开始以及如何实施?

我阅读了文档,但不太了解它应该如何工作

让我们得到一个类似字段的值

$likes = Request::cookie('like');

选择时间

$minutes = 600;

接下来是什么,我如何检查以添加喜欢?

标签: laravel

解决方案


如果您的 updated_at 列没有在更新时自动更新(Eloquent 默认这样做),您需要这样做,以便查询可以过滤具有正确更新时间的行。您可以使用 Carbon 进行简单的时间计算。

 $likes = Request::cookie('like');
 $hours = 10;
    if($likes) {
        # Eloquent way
        Article::find($id)
            ->where('updated_at', '<', Carbon::now()->subHours($hours)->toDateTimeString())
            ->increment('like');
    }

如果您想要查询生成器方式,请使用以下语法:

# Query Builder way
DB::table('articles')
    ->where('id', $id)
    ->where('updated_at', '<', Carbon::now()->subHours($hours)->toDateTimeString())
    ->increment('like');

未测试。


推荐阅读