Laravel 5错误处理

时间:2015-01-11 16:57:46

标签: laravel error-handling exception-handling

我正在使用Laravel 5,我正在尝试自定义404页面和自定义异常处理,但我无法弄清楚我的代码放在哪里。前段时间有一个不再存在的ErrorServiceProvider。谁能给我一些指示?

编辑:我看到他们在App / Exception文件夹中添加了一个Handler类,但是它似乎仍然不适合放置它,因为它并没有完全遵循laravel 4.2 App :: error,App :: missing和App ::致命方法。有人有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用app / Exceptions / 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 :(得分: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);
    }
}