Laravel Blade foreach 如果关系存在

Laravel Blade foreach if relation present

我有一个项目,用户拥有可以订阅的事件(多对多)。 一切正常,但我想知道如何在我的 blade 视图中查看用户是否订阅了事件。

这是我用关系加载视图的代码

    $events = Event::with('users')->get();
    return view('dashboard.events')->with('events', $events);

现在我想知道如何检查用户是否已经订阅了事件并且

如果是,则不显示该事件的订阅按钮

@foreach($events as $event)
    <tr>
        <td>{{ $event->name }}</td>
        <td><a href="/events/subscribe/{{ $event->id }}">Subscribe</a></td>
    </tr>
@endforeach

编辑 1

这没有给出错误,但也不起作用。我得到了 a href 版本的两倍。

 @if($event->users->contains($event->id))
     <td>Subscribed</td>
 @else
     <td><a href="/events/subscribe/{{ $event->id }}">Subscribe</a></td>
 @endif

这应该有效...

<tr>
    <td>{{ $event->name }}</td>
    @if (isset($user) && Auth::check() && $user->events->contains($event->id)
        <td><a href="/events/subscribe/{{ $event->id }}">Subscribe</a></td>
    @endif
</tr>

试试 -

$event->users; // if you defined the relation as 'users'