laravel5 所有异常错误都由类 App\Exceptions\Handler 处理,该类包含两个方法: report 和 render 。这里我们只看 render 方法,该方法会将异常渲染到HTTP响应中,就是说错误信息就是通过这个方法展示的。
1、修改 render 方法
public function render($request, Exception $exception)
{
/* 错误页面 */
if ($exception instanceof HttpException) {
$code = $exception->getStatusCode();
if (view()->exists('errors.' . $code)) {
$message = $exception->getMessage();
return response()->view('errors.' . $exception->getStatusCode(), ['message'=>$message], $exception->getStatusCode());
}
}
return parent::render($request, $exception);
}
2、根据代码逻辑,如果存在一个类似 "errors.{httpStatusCode}" 命名的视图(view),就会被加载并展示出来(这个视图文件还会接收到一些参数)。
知道了原理,接下来定制 404错误页(或者其他)就简单了,只要将视图文件放到如下路径就行了:
resources/views/errors/404.blade.php
文件夹不存在自行创建!