Laravel Blade foreach如果存在关系

时间:2015-04-16 08:37:03

标签: php laravel foreach

我有一个项目,用户可以订阅他们可以订阅的活动(多对多)。 一切都运行正常,但我想知道如何在我的刀片视图中看到用户是否订阅了某个活动。

这是我用代码

加载视图的代码
    $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

这不是错误,但也不起作用。我得到两倍的href版本。

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

2 个答案:

答案 0 :(得分:2)

这应该有用......

<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>

答案 1 :(得分:1)

尝试 -

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