Laravel中间件无法正常使用检查权限

时间:2018-07-04 11:54:20

标签: php laravel

我正在开发Laravel ACL系统。在我的ACL中,我通过HasPermission中间件授予了权限,在我的中间件中,它无法检查总是执行redirect()->back()方法的任何权限。

这是我的代码示例。

class HasPermission
{

public function handle($request, Closure $next,...$permissions)
{
    // $permissions = explode(',', $permissions);
    //dd($permissions);

    foreach($permissions as $permission){
        if (Auth::user()->can($permission)) {
            return $next($request);
        }
    }
    return redirect()->back();
}
}

我的控制器。

function __construct()
{
    $this->middleware('auth');
    $this->middleware('HasPermission:Role-Read,Role-Delete')->only('userEdit');
    $this->middleware('can:Role-Update')->only('userEdit');
}

这个。 Auth::user()->can($permission)无法正常工作。该问题的解决方案是什么。

1 个答案:

答案 0 :(得分:0)

尝试: Auth :: user()-> can('您要更新的字段',$ permission);