Laravel-使用Gate::允许多个对象
是否有方法验证多个元素或ID的策略 假设我有一个Laravel-使用Gate::允许多个对象,laravel,laravel-5,laravel-5.5,laravel-5.6,Laravel,Laravel 5,Laravel 5.5,Laravel 5.6,是否有方法验证多个元素或ID的策略 假设我有一个$user对象 我可以做:\Gate::allows('delete',$user) 如果我有一组User对象:$users,该怎么办 有没有办法做到\Gate::allows('delete',$users) 编辑: 我有一个删除多个实体的路径 Route::delete('/users','UsersController@deleteMultiple'); 有效负载是一组ID ['ids'=>[1,2,3]] 在Laravel中定义门时,可以
$user
对象
我可以做:\Gate::allows('delete',$user)
如果我有一组User
对象:$users
,该怎么办
有没有办法做到\Gate::allows('delete',$users)
编辑:
我有一个删除多个实体的路径
Route::delete('/users','UsersController@deleteMultiple');代码>
有效负载是一组ID
['ids'=>[1,2,3]]
在Laravel中定义门时,可以向闭包传递任意数量的参数。唯一的要求是第一个参数接受一个$user
参数,该参数是当前经过身份验证的用户。您定义的任何其他参数完全由您决定。您可以轻松编写授权批量删除功能的门,如下所示:
Gate::define('bulk-delete', function ($user, Collection $users) {
// Your logic may differ
return $users->every(function ($subject) use ($user) {
return $user->canDelete($subject);
});
});
然后,在控制器或服务类中,可以编写以下内容:
if (Gate::allows('bulk-delete', $users)) {
// The current user can bulk delete the users...
}
当然,您可能希望将其重构为一个类,以获得更好的可维护性 你能使用循环吗?是的。我想我能做到。问题是我有一个删除多个资源的路径。