如何将变量附加到Auth :: user()然后保存并缓存它?

时间:2018-06-09 11:09:20

标签: php laravel authentication oauth laravel-passport

我遇到了下一个问题:在Laravel中使用Auth Passport提供程序的auth用户之后,我得到了Auth::user()。然后我尝试将变量附加到它。

 $role = Input::get('role');
 $user = Auth::user();
 $user->role = $role;
 Auth::setUser($user);`

如果在当前控制器和路由中使用新的$user变量,它可以正常工作,但如果我尝试在另一个路由中获取Auth::user(),则返回旧值。 如何将变量附加到Auth::user()然后保存并缓存它? 我想用" setUser"更改Auth::user()方法,然后将其缓存以用于所有其他路由。我怎样才能解决我的问题?

2 个答案:

答案 0 :(得分:1)

Auth::user()在其他地方返回旧值的原因是Auth::user()是一个认证系统,它使用户凭证验证,然后再次比较User model(也就是默认值) laravel auth)

使用setUser时,您只是在新建实例时设置了一些属性,这就是为什么在其他地方,您获得从User model中提取的旧值setUser它未设置。

答案 1 :(得分:0)

您可以在此用户模型上使用追加,

例如,

protected $appends = [ 'my_role' => 1];