简体   繁体   English

Laravel 权限获取用户角色为 object 而不是数组

[英]Laravel permission get user roles as object instead of array

Currently using spatie/laravel-permission package to manage user roles: an user could have a single role.目前使用 spatie/laravel-permission package 来管理用户角色:一个用户可以有一个角色。

return $this->userModel
    ->select('id', 'first_name', 'last_name', 'email', 'slug')
    ->with(['roles' => function ($query) {
        $query->select('name', 'guard_name');
    }])
    ->find($id);

Hoever, when I'm running the following query, it returns an array of roles.但是,当我运行以下查询时,它会返回一个角色数组。

"roles": [
    {
        "name": "personal_trainer",
        "pivot": {
            "model_id": "9e8fb1a1-e725-4b48-befa-d9c4783c9eda",
            "role_id": 2,
            "model_type": "App\\Models\\User\\User"
        }
    }
],

How can I make "roles" key return a single object instead of an array?如何使“角色”键返回单个 object 而不是数组? I want to avoid manipulating it post-query.我想避免在查询后对其进行操作。

Kindly try请尝试

return $this->userModel
    ->select('id', 'first_name', 'last_name', 'email', 'slug')
    ->with(['roles' => function ($query) {
        $query->select('name', 'guard_name');
    }])
    ->first();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM