Laravel 5 错误处理
Laravel 5 Error Handling
我正在使用 Laravel 5,我正在尝试制作自定义 404 页面和自定义异常处理,但我不知道将我的代码放在哪里。前段时间有一个 ErrorServiceProvider 现在不存在了。谁能给我一些指点?
编辑:我看到他们在 App/Exception 文件夹中添加了一个 Handler class,但这似乎仍然不是放置它的正确位置,因为它根本不遵循 laravel 4.2 App::error、App::missing 和 App::fatal 方法。有人有什么想法吗?
使用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);
}
}
以下是在遵守 .env
中的 APP_DEBUG
设置的同时自定义错误页面的方法。
app/Exceptions/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);
}
}
我正在使用 Laravel 5,我正在尝试制作自定义 404 页面和自定义异常处理,但我不知道将我的代码放在哪里。前段时间有一个 ErrorServiceProvider 现在不存在了。谁能给我一些指点?
编辑:我看到他们在 App/Exception 文件夹中添加了一个 Handler class,但这似乎仍然不是放置它的正确位置,因为它根本不遵循 laravel 4.2 App::error、App::missing 和 App::fatal 方法。有人有什么想法吗?
使用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);
}
}
以下是在遵守 .env
中的 APP_DEBUG
设置的同时自定义错误页面的方法。
app/Exceptions/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);
}
}