自定义错误500页面不显示使用Event :: override - Laravel

问题描述:

我能够成功地使用Event :: Override函数与404事件,但不是500事件。我只希望事件通过flash消息重定向到首页,因为我可以很好地处理404个事件。自定义错误500页面不显示使用Event :: override - Laravel

我还需要做些什么才能让500个事件也重定向到我的首页?请参阅routes.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'); 
}); 

有什么想法?

+0

肯定的是,有人已经有过这种经历过吗?任何人? – user1746582

我已经能够通过直接在\ application \ views \ error文件夹中更新500错误文件来解决此问题。

我的一个移动应用程序需要格式为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); 

}); 

捕获未处理像DB错误..

App::error(function(Exception $exception , $code) 
{ 
    return Response::json( array(
     'message' => $exception->getMessage() , 
     'code' => $code , 
    ), $code); 
});