如何在Laravel中将自定义值添加到Auth :: user()

5 php laravel laravel-5

我有一些自定义值,我希望在用户登录时在整个项目中使用。我正在控制器中编写函数,但是每次调用该静态方法都会使代码有点冗长。除了要调用该函数外,我还不想为其分配自定义值,Auth::user()因此可以在项目中的任何地方使用它。我在代码下面尝试了它,但是它不起作用

public static function getUserDetailById($id){
      //Do Something  and assign value to $custom_val
      Auth::user()->custom = $custom_val;
}
Run Code Online (Sandbox Code Playgroud)

但这不适用于任何控制器或视图。我尝试检查自定义值,Auth::user()但缺少该值。

有什么方法可以向其中添加自定义值Auth::user()而不在表中添加新列?

Par*_*ora 10

这很简单。您可以为此创建一个访问器。

应用\用户.php

public function getCustomAttribute()
{
    return 'Custom attribute';
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用以下方式在任何地方访问它:

echo Auth::user()->custom;
Run Code Online (Sandbox Code Playgroud)

更多信息:

https://laravel.com/docs/5.4/eloquent-mutators#defining-an-accessor