天才们。
我正在制作Laravel之类的Instagram之类的网站。
人们可以像在Instagram上一样发布图片并按“爱”按钮。
我的问题是如何实现当前登录用户是否被“爱”动。
我最终设法在此控制器中按以下方式获取了用户按下“爱”的列表。但这是太多无用的信息。如果有1千人推“爱”……那将是可怕的JSON。
我已经整整一天都为了做这件事而死...希望我能得到你的帮助。谢谢。
答案 0 :(得分:1)
您可以使用属性和追加来创建自定义数据字段。由于它是布尔值,因此我将其称为is_loved
,但您可以根据需要更改它。
class Comment extends Model
{
// attributes to append to JSON response
protected $appends = ['is_loved'];
// ... your other properties and methods
public function getIsLovedAttribute()
{
if (auth()->check()) {
return !! $this->loveComments()->where('from',auth()->user()->id)->count();
}
return false;
}
}
现在不再需要加载love_comments
关系。
编辑:我添加了一个授权检查以确保用户首先登录。这是为了防止您向来宾公开发表评论。否则,可能会引发错误。