Laravel 5 - 在返回资源的所有投票作为关系时检查用户是否有 'voted'

Laravel 5 - Checking if a user has 'voted' when returning all votes for the resource as a relationship

我正在为我正在开发的 link 共享网站制作投票系统。

当用户对 link 投票时,新行将添加到具有 link id 和用户 id 的数据库中。

在我的控制器中显示这些 link 时,我称之为关系(投票):

$links = Link::orderBy('created_at', 'desc')->with('votes')->paginate(20);

以及模型中的关系

public function votes()
{
    return $this->hasMany('\App\LinkVote');
}

在我看来,我是 运行 $link 上的一个 foreach 来显示每一个。我的目标是在用户已经投票给 link.

时显示不同的按钮

当获得 $link-> 选票时,我得到:

我如何检查(在我的视图和 foreach 中)当前登录的用户是否在该投票数组中?

你可以试试contains():

$link->votes->contains('user_id', auth()->user()->id);

where() with count():

if ($link->votes->where('user_id', auth()->user()->id)->count()) {