我需要知道哪个更好?使用会话或auth()-> user()->属性

时间:2019-09-13 20:40:39

标签: php laravel authentication session

我正在一个社交网站上,登录时,我需要一些有关用户在前端使用的信息,例如名称,图像链接,用户名,ID。

因此,最好使用会话来存储我需要的所有数据,或者仅使用 auth()-> user()->属性?

3 个答案:

答案 0 :(得分:0)

您可以使用auth()帮助器:

auth()->user()

或身份验证外观:

Auth::user()

两者相同,并从数据库中获取身份验证用户的详细信息

答案 1 :(得分:0)

默认情况下,auth()辅助功能或外观已经使用会话作为Web Guard的驱动程序...
config/auth.php

'guards' => [
        'web' => [
            'driver' => 'session', // <-- Here
            'provider' => 'users',
        ],
]

所以您真正要问的是会议还是会议更好...

答案 2 :(得分:0)

您可以使用auth helper,它是最佳的,因为它可以在laravel内核加载开始时在全局引导的$ app变量witch内加载。

这也是从auth()帮助器(如auth()-> id)中从用户加载其他每次需要的属性的好方法。

您可以通过以下方式使用marco将此类数据添加到身份验证帮助程序中:

将此添加到AppServiceProvider引导方法或任何自定义提供程序中,您必须通过可宏化的SessionGuard将其他字段添加到身份验证帮助程序中。

SessionGuard::macro('mobile', function () {
        return auth()->check() ? auth()->user()->mobile : null;
});

现在您只需要在任何地方使用

auth()->mobile();