所以这就是事情。这已经困扰了我一段时间,我似乎无法得到一个坚实的解决方案。我有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记录的身份验证。
希望我在这里有意义。提前致谢。
这个错误非常明显。如果当前没有用户通过身份验证,则Auth Facade将返回null。所以,我建议您将auth中间件发送到您的路由或控制器。