php artisan route:list 门错误

php artisan route:list error with gate

因此,我将 Gate facade 添加到我的 UserController 中的构造函数

public function __construct()
{
    if (Gate::denies('manage-user')) {
        abort(404);
    }
}

一切都按预期工作,但有一件事,现在 php artisan route:list 显示以下错误

$ php artisan route:list

[Symfony\Component\HttpKernel\Exception\NotFoundHttpException]

如果我移除门,php artisan route:list 运行 没问题。有人知道为什么会这样吗?以及如何解决?可以artisan绕过门立面吗?

我认为您想避免在控制器构造函数中进行这样的检查。 Laravel 文档展示了多种实现授权检查的方法,其中 none 在控制器构造函数中。

https://laravel.com/docs/5.2/authorization#checking-abilities

我会亲自创建一个 FormRequest,并使用执行检查的授权方法。然后将 FormRequest 注入每个方法,它会自动运行授权。

https://laravel.com/docs/5.2/authorization#within-form-requests

https://laravel.com/docs/5.2/validation#form-request-validation

我使用了这个命令

public function __construct()
{
    // check if request not from cli
    if ('cli' != php_sapi_name()) {
        $this->authorize('is_admin');
    }
}