tam*_*am5 13 php authentication laravel laravel-5.1
如果我想检查用户是否在我的Laravel 5.1应用程序中登录,我可以使用
if (Auth::user()) {...}
Run Code Online (Sandbox Code Playgroud)
要么
if (Auth::check()) {...}
Run Code Online (Sandbox Code Playgroud)
在检查用户是否已登录时,是否有理由优先选择其中一个?
Tho*_*Kim 16
不,接受的答案是不正确的.
Auth::check()顺从Auth::user().只要我记得,就一直这样.
换句话说,Auth::check()调用Auth::user()从中获取结果,然后检查用户是否存在.主要区别在于它检查用户是否为空,以便获得布尔值.
这是检查功能:
public function check()
{
return ! is_null($this->user());
}
Run Code Online (Sandbox Code Playgroud)
如您所见,它调用user()方法,检查它是否为null,然后返回一个布尔值.
我建议您在代码中定义“$user = auth()->user();是否要检查用户是否经过身份验证”以及用户模型属性,例如电子邮件、姓名等。
因为auth()->user()两者auth()->check()都会查询数据库。如果您希望应用程序速度更快,请定义$user = auth()->user();然后您可以在代码中使用它,并且您还可以检查用户是否通过了身份验证$user == null;。
不要在一个函数或一段代码中同时使用auth()->check()andauth()->user()来减少对数据库的查询并提高应用程序的速度!; )
| 归档时间: |
|
| 查看次数: |
20399 次 |
| 最近记录: |