【问题标题】:Laravel Blade foreach if relation presentLaravel Blade foreach 如果存在关系
【发布时间】:2015-04-16 17:01:44
【问题描述】:

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

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

    $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

【问题讨论】:

    标签: php laravel foreach


    【解决方案1】:

    这应该可以...

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

    【讨论】:

    • 我没有将 $user 变量传递给视图。我应该吗?
    • 你应该,是的。如果没有用户,则无法检查用户是否订阅。
    • 哦,现在它开始工作了!谢谢,不知道需要 $user 变量。谢谢!
    • 说到,可能应该在 if 中添加另一个条件。已编辑
    • 哦,聪明! :) 我正在使用 \Auth::user() 来识别用户
    【解决方案2】:

    试试 -

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

    【讨论】:

    • 嗯不工作,它给了我两倍的链接.. 我正在将代码添加到我的问题中
    • 我通过将 $user 添加到视图中使其工作。感谢您的帮助!
    猜你喜欢
    • 2015-07-10
    • 2019-06-26
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2018-06-28
    • 2016-04-14
    • 2018-03-07
    • 1970-01-01
    相关资源
    最近更新 更多