在Laravel 5.8或更高版本中使用Auth :: user()-> user()

时间:2019-03-03 15:40:09

标签: laravel

我正在尝试将Laravel项目从Laravel 5.1升级到5.8。我注意到在项目中使用了Auth::user()而不是Auth::user()->user(),在Laravel 5.8中,由于Auth::user为null,在某些情况下我得到了null异常。我应将Auth::user()->user()的所有实例替换为Auth::user()吗?

3 个答案:

答案 0 :(得分:3)

您应该使用此-

Auth::user();

或者这个-

auth()->user();

请确保您的用户模型中没有名称为 user()的方法/关系,这可能是您拥有 user()-> user()的原因>类似语法。如果不是这种情况,请随时用 auth()-> user()

替换它

答案 1 :(得分:1)

如果Auth:user()为空,则表示系统未获得经过身份验证的用户。 但是,如果要获得经过身份验证的用户,则应使用Auth::user()auth()->user()来检索User模型

答案 2 :(得分:1)

检查您的路由是否添加了身份验证中间件,然后尝试使用此代码。

auth()->user();

,这将使与Auth::user();相同的经过身份验证的用户进入