@if(auth()->user()->isAdmin())content@endif@if(auth()->user()->isNormal())content @endif然后如果用户未登录,我会收到此错误:调用(user.blade.php 的路径)isAdmin()上的成员函数null
3 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
这个错误,Call to a member function isAdmin() on null告诉你的是,没有任何对象附加到你调用函数的任何地方。在这种情况下,它是经过身份验证的用户。这意味着当您调用isAdmin().
您可以通过首先检查用户是否登录来避免它。@Alberto 为您提供了不同的选择。此外,您可以if像这样调整您的陈述:
@if( auth()->check() && auth()->user()->isAdmin() )
...
@if( auth()->check() && auth()->user()->isNormal() )
在这里,第一个条件检查是否有经过身份验证的用户,第二个条件只有在第一个语句返回时才会检查true。
附带说明一下,您可以使用Policiesor/andGate来实现更强大的授权逻辑。
慕雪6442864
TA贡献1812条经验 获得超5个赞
You can change your code like shown below
@auth
content if user is logged in
@endauth
@guest
content if user is not logged in
@endguest
- 3 回答
- 0 关注
- 222 浏览
添加回答
举报
0/150
提交
取消
