Laravel 5.1路由:控制器AJAX检查列表中断


Laravel 5.1 route:list breaks on controller AJAX check

当我尝试用php artisan route:list在命令行中获取路由列表时,我会收到以下错误:[Symfony''Component''HttpKernel''Exception''HttpException]

似乎我的AjaxController的构造函数正在为每个ajax路由抛出一个异常。就像它进入这个条件!$request->ajax()并中断这个CLI工作程序一样。

AjaxController的构造函数

public function __construct(Request $request)
{
    if (!$request->ajax()) 
    {
        abort(403);
    }
}

路线

Route::controller('ajax', 'AjaxController');

有没有想过在不删除此条件的情况下如何获取路线列表?

这很正常,因为您的命令行调用不是ajax
在这种情况下,它进入该条件并进行调用[Symfony'Component'HttpKernel'Exception'HttpException]的中止(403)

如果你想在不删除此条件的情况下获得路由列表,你可以用这样的东西覆盖App'Exceptions'Handler中的渲染函数:

    public function render($request, Exception $e)
    {
        if (view()->exists('errors.'.$e->getStatusCode()))
        {
            return response()->view('errors.'.$e->getStatusCode(), [], $e->getStatusCode());
        }
        else
        {
            return parent::render($request, $e);
        }
    }

请参阅https://mattstauffer.co/blog/laravel-5.0-custom-error-pages