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'
我有一个项目,用户拥有可以订阅的事件(多对多)。 一切正常,但我想知道如何在我的 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'