具有相同角色的身份验证用户与Guard Laravel相同

问题描述 投票:0回答:1

我在laravel中使用两种不同的防护措施:'admin'和'web',对于admin,我有两个不同角色的用户('administrador'和'tecnico')。我想检查已通过admin身份验证的用户的角色名称,但我应该犯一个错误,因为它仅在使用role_id且没有角色名称时才起作用(两者都是Role Table中的属性,id(pk))。

此设置有效:

@if( Auth::guard('admin')->user()->role_id=="1") ... @endif

此设置无法正常工作:

 @if( Auth::guard('admin')->user()->role-name="administrador") ... @endif.
 @if( Auth::guard('admin')->user()->role->name="tecnico") ... @endif.

我已经打印了所有设置,并且它们具有正确的属性值,我猜想laravel仅检查它们是否经过了身份验证以作为警卫,但是当我使用ID号时,实际上它让我根据登录的用户角色进行控制。

laravel authentication laravel-blade roles guard
1个回答
0
投票

我认为它的语法错误。只有=是赋值运算符。对匹配角色使用==

@if( Auth::guard('admin')->user()->role->name=="administrador") ... @endif.
@if( Auth::guard('admin')->user()->role->name=="tecnico") ... @endif.

并且下面的句子非常有效,因为在用户表中也存在role_id@if(Auth :: guard('admin')-> user()-> role_id ==“ 1”)... @endif希望这项工作

© www.soinside.com 2019 - 2024. All rights reserved.