Laravel-使用Gate::允许多个对象

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中定义门时,可以

是否有方法验证多个元素或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::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...
}

当然,您可能希望将其重构为一个类,以获得更好的可维护性

你能使用循环吗?是的。我想我能做到。问题是我有一个删除多个资源的路径。