0

我正在使用 laravel Sanctum API 令牌。我可以成功登录用户,我正在尝试在 vue 中获取登录用户和分配给它的角色,但到目前为止我还没有运气

 public function user(Request $request)
    {
        return $request->user();
    }

这是返回用户的代码我如何返回附加到这个用户的角色,所以在我的 vue 中我可以做这样的事情来显示角色

{{ user.role.name }}

用户模型

public function roles()
    {
        
        return $this->belongsToMany('App\Role');
    }

好榜样

public function users()
    {
        return $this->belongsToMany('App\User');
    }
4

1 回答 1

1

您必须在返回用户对象之前实际加载角色关系。

您可以通过load('roles')像这样调用用户来做到这一点:

    public function user(Request $request)
    {
        return $request->user()->load('roles');
    }

有关详细信息,请参阅文档:https ://laravel.com/docs/7.x/eloquent-relationships#lazy-eager-loading

如果您在与用户交互时总是需要角色,您还可以通过设置预先加载关系

protected $with = ['roles'];

在您的用户模型上。

同样,请参阅文档以获取更多参考:https ://laravel.com/docs/7.x/eloquent-relationships#eager-loading(默认情况下急切加载)

于 2020-08-11T12:55:56.013 回答