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

时间:2013-01-11 11:00:45

标签: laravel routes http-status-code-404

我可以成功使用Event :: Override功能404事件而不是500事件。我只是希望通过flash消息将事件重定向到首页,因为我能够处理404事件。

还有什么我需要做的才能让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');
}); 

任何想法?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我的一个移动应用程序需要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 error,..

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