哪个使用 Auth::check() 或 Auth::user() - Laravel 5.1?

2022-08-30 19:06:06

如果我想检查用户是否在我的Laravel 5.1应用程序中登录,我可以使用

if (Auth::user()) {...}

if (Auth::check()) {...}

在检查用户是否已登录时,是否有理由更喜欢其中一个?


答案 1

Auth::check()遵从于 。从我记事起,就一直如此。Auth::user()

换句话说,调用 ,从中获取结果,然后检查用户是否存在。主要区别在于,它会检查用户是否为您 null,以便您获得布尔值。Auth::check()Auth::user()

这是检查功能:

public function check()
{
    return ! is_null($this->user());
}

如您所见,它调用该方法,检查它是否为 null,然后返回一个布尔值。user()


答案 2

如果只是想检查用户是否登录,则更正确。Auth::check()

Auth::user()将进行数据库调用(并且略重),这应该只是检查会话。Auth::check()


推荐