为了账号安全,请及时绑定邮箱和手机立即绑定

如何验证用户是否已登录?只有当用户登录时我才需要显示内容。这是我使用的代码

如何验证用户是否已登录?只有当用户登录时我才需要显示内容。这是我使用的代码

PHP
拉莫斯之舞 2022-05-27 16:25:58
@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来实现更强大的授权逻辑。


查看完整回答
反对 回复 2022-05-27
?
慕雪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


查看完整回答
反对 回复 2022-05-27
?
慕森卡

TA贡献1806条经验 获得超8个赞

正如您在此页面上看到的,有一个@auth ... @endauth指令检查用户是否已登录(由 完成的相同操作@if (Auth::check())),相反,检查用户是否未登录(由@guest ... @endguest完成的相同操作@if (!Auth::check()))。



查看完整回答
反对 回复 2022-05-27
  • 3 回答
  • 0 关注
  • 222 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号