使用集合中的爆炸按第二个值分组

时间:2019-06-14 22:03:33

标签: arrays laravel collections eloquent

我正在使用spatie / laravel-permission(https://github.com/spatie/laravel-permission)来定义权限和角色。

现在,我想创建一个视图,该视图列出表中的所有权限。

要对此进行存档,我正在构建一个API资源,其中应包含:

这是我要存档的内容:

permissions: [
        { module: 'User', view: true, create: false, delete: false },
        { module: 'Todo', view: true, create: false, delete: false },
      ],

许可的名称始终为verb-modelview-usercreate-userdelete-userview-todocreate-todo等)

所以我考虑过使用Permission拆分每个explode的名称。

所以我会得到:

['view', 'user']
['create', 'user']
['delete', 'user']
...

此数组可以在我的资源中分组。

所以我可以做类似的事情:

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;
use Spatie\Permission\Models\Permission;


class UserRoleResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request $request
     *
     * @return array
     */
    public function toArray($request)
    {
        return [
            'id'          => $this->id,
            'name'        => $this->name,
            'permissions' => Permission::all()->each(function($permission){
                //return the exploded array
            })
        ];
    }

}

但是Laravel也许有一种更简单的方法?

谢谢您对此的想法:-)

0 个答案:

没有答案