在null上调用成员函数unreadNotification()

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

所以这就是事情。这已经困扰了我一段时间,我似乎无法得到一个坚实的解决方案。我有2名警卫。一个是管理员,另一个是网络。所以我有多个身份验证设置。

我已经像这样设置了通知:

-admin:

Auth::guard('admin')->user()->notify(new RoomStatusRoomboy($notifyroomnumber, $created_at_stamp));

-User(普通认证):

\auth()->guard('web')->user()->notify(new RoomStatusReception($notifyroomnumber, $created_at_stamp));

我的结果很好。但我在我的普通auths刀片中有这个代码。此代码位于我用于显示通知的其中一个刀片文件中:

{{\Illuminate\Support\Facades\Auth::guard('admin')->user()->unreadNotifications()->count()}}

我正在计算网络身份验证中管理员身份验证的通知数量。所以它会寻找App\Admin。但问题是我得到call to a member function unreadNotification() on null错误。我认为这是因为认证。我试图在管理员注销的情况下查看此内容。当我在另一个选项卡上以管理员身份登录并重试时,它可以正常工作。但是,如果管理员已注销,则无效。

请注意,{{\Illuminate\Support\Facades\Auth::guard('admin')->user()->unreadNotifications()->count()}}位于普通身份验证的视图内,而不是管理员。这是一个Web记录的身份验证。

希望我在这里有意义。提前致谢。

laravel authentication notifications
1个回答
0
投票

这个错误非常明显。如果当前没有用户通过身份验证,则Auth Facade将返回null。所以,我建议您将auth中间件发送到您的路由或控制器。

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