在刀片视图中使用@if(Auth :: user())与@auth一样吗?

时间:2018-12-17 14:26:02

标签: laravel laravel-blade

我意识到我正在使用两种方法来防止未登录的用户看到仅适用于会员的内容。第一个正在使用@if(Auth::user()),第二个正在使用@auth。例如:

@auth
    <button class="submit-btn like liked" id='{{ $image->id }}'>
@endauth

@if(Auth::user())
    <button class="submit-btn like liked" id='{{ $image->id }}'>
@endif

这两个示例之间是否有区别?还是我应该坚持其中一个?

2 个答案:

答案 0 :(得分:4)

由于version 5.4.29,它们基本上是相同的。对于if-else构造,较短的@auth@endauth只是较短/隐藏的方式。为了您自己的舒适,最好坚持使用其中一个。

它真正闪耀的时刻是当您使用防护装置时,因此您不必执行此类操作(假设您的用户类型为“管理员”):

@if(Auth::user()->type === 'administrator')

相反,满足以下条件:

@auth('administrator')

答案 1 :(得分:0)

更正确地使用:

Auth:check() Auth:guest()在您的代码中,因为它们返回bool

auth()->check() auth()->guest()(与助手相同)。

还有刀片中的@auth @guest