2015-01-11 4 views
3

Я использую Laravel 5, и я пытаюсь создать настраиваемую страницу 404 и пользовательскую обработку исключений, но я не могу понять, где разместить мой код. Некоторое время назад появился ErrorServiceProvider, который больше не существует. Может ли кто-нибудь дать мне несколько указателей?Laravel 5 Обработка ошибок

EDIT: Я видел, что они добавили класс Handler в папку App/Exception, но это все еще кажется неправильным местом для его размещения, потому что оно не соответствует вообще laravel 4.2 App :: error, App :: missing и App :: фатальные методы. У кого-нибудь есть идеи?

+0

Вы должны поместить их в свой globals.php http://laravel.com/docs/4.2/errors#handling-errors – astroanu

+0

То есть laravel 4.2, мой вопрос касается нового laravel 5 –

+0

Да. Тейлор добавил папку Exception с классом Handler, где это можно сделать для Laravel 5. Официальная версия для нее ожидается в ближайшие несколько дней. –

ответ

1

Используйте приложение/Исключения/Handler.php метод рендеринга для достижения этого. L5 документация http://laravel.com/docs/5.0/errors#handling-errors

public function render($request, Exception $e) 
{ 
    if ($e instanceof Error) { 
     if ($request->ajax()) { 
      return response(['error' => $e->getMessage()], 400); 
     } else { 
      return $e->getMessage(); 
     } 
    } 

    if ($this->isHttpException($e)) { 
     return $this->renderHttpException($e); 
    } else { 
     return parent::render($request, $e); 
    } 
} 
1

Вот как настроить страницу ошибки при соблюдении настройки APP_DEBUG в .env.

приложение/исключения/handler.php

public function render($request, Exception $e) 
{ 
    if ($this->isHttpException($e)) 
    { 
     return $this->renderHttpException($e); 
    } 
    else 
    { 
     if (env('APP_DEBUG')) 
     { 
      return parent::render($request, $e); 
     } 
     return response()->view('errors.500', [], 500); 
    } 
} 
+0

Я думаю, что вернуть ответ лучше, чем просто штамп, например: 'return response() -> view ('errors.500', [], 500);' , если хотите, создать собственное представление для всех ошибки. –

+0

@RodolphoFreire Я согласен. Ответ обновлен, спасибо. – unliu

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