Пользовательская ошибка 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 );
});