Laravel开发错误处理:如何自定义 404、500 错误页面

Laravel 错误处理

所有的异常处理都是通过 Laravel/App/Exceptions/Handler 类。这个类包含了两个方法:report 和 render

report 方法用来记录异常。默认情况下,当异常被记录时,report 方法只是简单的发送异常到基类。

render 方法负责将指定的异常转换成 HTTP 响应再发送到浏览器。默认情况下,异常会被发送到基类并帮你生成响应。

Laravel 默认错误页面

自定义 HTTP 错误页面

编辑 PHP 文件 Laravel/app/Exceptions/ 内容如下:

public function render($request, Exception $e)
{
   if ($e instanceof ModelNotFoundException) {
       $e = new NotFoundHttpException($e->getMessage(), $e);
   }
   if($e instanceof \Symfony\Component\Debug\Exception\FatalErrorException && !config('')) { // 加上防止dubug关闭模式下暴露重要信息
       return response()->view('', [], 500);
   }
   return parent::render($request, $e);
}

你可以简单的对于各种不同的 HTTP 状态码返回自定义的错误视图。例如,如果你想要自定义 HTTP 404 状态码的错误视图,则可以创建一个 resources/views/errors/ 文件。应用程序将会使用这个视图处理所有发生的 404 错误。

在这个目录下的视图,命名应该匹配对应到 HTTP 状态码。

THE END