laravel - 使用 cookie 的点赞功能
问题描述
假设like
我的模型中有一个字段,现在我想使用 Cookie 实现添加点赞的功能。比如我们有一个文章ID,我们签入cookies,如果没有数据,那么我们加个like,设置时间为10小时,例如,以此类推,10小时过去了,我们检查,再次我们可以添加喜欢并再次设置这个时间。如果数据已经存在,那么我们不添加like,也不更新时间。
谁能看到这方面的一些例子?或者从哪里开始以及如何实施?
我阅读了文档,但不太了解它应该如何工作
让我们得到一个类似字段的值
$likes = Request::cookie('like');
选择时间
$minutes = 600;
接下来是什么,我如何检查以添加喜欢?
解决方案
如果您的 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');
未测试。
推荐阅读
- amazon-web-services - 使用目标触发器从 Lambda 到 SQS 的多条消息
- python - 如何使用 Python 在 AWS CDK 中构造 DHCPOptionsAssociation
- ssl - Istio 远程错误:tls:错误解密消息
- github - 图像和 CSS URL 路径无法解析为浏览器中的正确位置
- rxjs - Rxjs - 在特定情况下取消去抖动
- javascript - 在 React 中以 Modal 形式显示相同的数据
- matrix - 你如何编写一个fortran程序来打印方阵中所有元素的总和
- git - 我可以在本地提交到 origin/master 分支吗?
- prolog - 独家解决方案?
- python - 控制 matplotlib 图像的焦点