2016-05-06 3 views
0

Когда я пытаюсь получить список маршрутов в командной строке с php artisan route:list я получаю эту ошибку: [Symfony \ Component \ HttpKernel \ Exception \ HttpException]Laravel 5,1 маршрута: список изломы на контроллер проверки AJAX

Похоже мой AjaxController-х конструктор бросает исключение для каждого маршрута ajax. Как и в этом состоянии !$request->ajax() и этот сотрудник CLI разбивает.

конструктор AjaxController в

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

Маршрут

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

Есть мысли, как я мог получить список маршрутов, не снимая это условие?

+0

В какой файл у вас есть этот код? Попробуйте удалить маршрут до этого контроллера, все ли работает? –

+0

только что отредактирован, в AjaxController –

+0

, когда маршрут удален, он работает –

ответ

1

Это нормально, потому что ваш вызов командной строки не является ajax.
В этом случае он входит в условие и делает прерывание (403), которое вызывает [Symfony\Component\HttpKernel\Exception\HttpException].

Может быть, если вы хотите, список маршрутов, не снимая это условие можно переопределить функцию визуализации в 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

+0

Я не хочу, чтобы ответ JSON в каждом 403 HTTP exception –

+0

Я отредактировал код. Вы можете создавать свои страницы ошибок. В этом случае вам нужно будет создать ресурсы просмотра/представления/ошибки/403.blade.php. –

+0

Это не решение первоначальной проблемы –

Смежные вопросы