如何在 laravel 刀片模板中检查当前的身份验证守卫及其来宾?

Posted

技术标签:

【中文标题】如何在 laravel 刀片模板中检查当前的身份验证守卫及其来宾?【英文标题】:How to check current authentication guard and its guest in laravel blade template? 【发布时间】:2020-08-03 11:46:36 【问题描述】:

我正在做一个 Laravel 项目。我有 2 个身份验证警卫。这是我第一次使用多重身份验证保护。

通常在前端我使用将访客和登录用户的代码分隔为:

@guest
    //Data for Guest Users.   
@endguest

@auth
    //Data for Logged in Users.
@endauth

现在有了多个 Guard,@guest 只有在我使用默认保护登录系统时才为假。即,即使我通过“Admin Guard”登录,@guest 也处于活动状态。如何检查用户是否是 Admin Guard 的访客或用户是否通过 Admin Guard 登录?

【问题讨论】:

@if(auth()->guard...) 不适合你吗? 【参考方案1】:

这取决于你的守卫的名字。通常 'web' 是 laravel 中的默认守卫。它会在 config 目录中的 auth.php 中提到:

defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

因此,当您检查@guest 或@auth 时,会检查“网络”防护。要检查不同的守卫,比如“管理员”,您可以将其指定为:

@guest('admin')
    //Data for Guest Users of admin guard.   
@endguest

@auth('admin')
    //Data for Logged in Users of admin guard.
@endauth

希望这对您的疑问有所帮助。如果您对此有任何疑问,请随时询问更多信息。还要确保在发布问题之前检查社区。因为类似的问题已经得到解答。

【讨论】:

以上是关于如何在 laravel 刀片模板中检查当前的身份验证守卫及其来宾?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 Laravel 刀片组件是不是已加载?

根据当前翻译的 Laravel 路线在刀片中添加“活动”类

如何在刀片模板的 foreach 循环中访问 laravel 集合?

如何在 laravel 刀片模板中使用 JSON 数据进行模型绑定?

如何在Laravel刀片模板中设置变量

如何在 laravel 刀片模板系统的下拉列表中添加属性 ID?