我遇到了下一个问题:在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()
方法,然后将其缓存以用于所有其他路由。我怎样才能解决我的问题?
答案 0 :(得分:1)
Auth::user()
在其他地方返回旧值的原因是Auth::user()
是一个认证系统,它使用户凭证验证,然后再次比较User model
(也就是默认值) laravel auth)
使用setUser
时,您只是在新建实例时设置了一些属性,这就是为什么在其他地方,您获得从User model
中提取的旧值setUser
它未设置。
答案 1 :(得分:0)
您可以在此用户模型上使用追加,
例如,
protected $appends = [ 'my_role' => 1];