Пользовательская ошибка 500 страница не отображается с помощью Event::override - Laravel

Я могу успешно использовать функцию Event::Override с событием 404, но не с событием 500. Я просто хочу, чтобы событие перенаправлялось на первую страницу с помощью флеш-сообщения, поскольку я могу справиться с 404 событиями.

Есть ли что-то еще, что мне нужно сделать, чтобы 500 событий также перенаправили на мою главную страницу? см. код ниже в файле rout.php:

Event::listen('404', function() {
    return Response::error('404');
});

Event::listen('500', function() {
    return Response::error('500');
});

Event::override('404', function() {
    Session::flash('error', '<strong>Error 404 - Not Found.</strong> The page you are     looking for is either <u>invalid</u> or <u>may no longer exist</u>. You are now back at our     home page.');
    return Redirect::to_route('home');
});

Event::override('500', function() {
    Session::flash('error', '<strong>Error 500 - Internal Server Error.</strong>     Something went wrong on our servers, apologies for that. Please contact us if this     persists.');
    return Redirect::to_route('home');
}); 

есть идеи?

2 ответа

Решение

Я смог обойти эту проблему, обновив файл ошибок 500 непосредственно в папке \application\views\error.

Одно из моих мобильных приложений нуждается в ошибке, как json формат. Я получил это решение с форума Laravel. Для ловли http ошибки

App::error( function(Symfony\Component\HttpKernel\Exception\HttpException $exception) {
    $code   =  $exception->getStatusCode();
    // you can define custome message if you need
    return Response::json( array(
        'message' => $exception->getMessage() ,
        'code' => $code ,
    ) , $code);

});

Поймать необработанное, как ошибка БД, ..

App::error(function(Exception $exception , $code )
{
    return Response::json(  array(
        'message' => $exception->getMessage() ,
        'code' => $code ,
    ), $code );
});
Другие вопросы по тегам