我正在使用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-model
(view-user
,create-user
,delete-user
,view-todo
,create-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也许有一种更简单的方法?
谢谢您对此的想法:-)