以下Gate定义工作正常:
Gate::define('create_role','App\Policies\RolePolicy@create_role');
Gate::define('view_role','App\Policies\RolePolicy@view_role');
Gate::define('edit_role','App\Policies\RolePolicy@edit_role');
Gate::define('delete_role','App\Policies\RolePolicy@delete_role');
但是当我把它改成时,
Gate::resource('roles', 'App\Policies\RolePolicy', [
'create_role' => 'create_role',
'view_role' => 'view_role',
'edit_role' => 'edit_role',
'delete_role' => 'delete_role',
]);
用于减少LOC和优化代码。它不起作用。
以下是我的刀片文件中的代码行,
@can('create_role')
<a href="{{route('create_role')}}">Add Role</a>
@endcan
@can('view_role')
<a href="{{route('view_role')}}"> View Roles</a>
@endcan
同样适用于编辑和删除。 观察到的行为是这样的,它只从策略方法中接收到错误。我甚至试过发送它只是真的,但没有任何区别。
答案 0 :(得分:0)
你想创造额外的大门吗?鉴于您在数组中传递了额外的参数。 门定义后的数组用于创建额外的门定义。 欲了解更多信息,请查看文档, link。 使用资源丰富的政策时。
例如:
Gate::resource('roles', 'App\Policies\RolePolicy');
@can('roles.view')
// html here
@endcan
@can('roles.create')
//html here
@endcan