在Laravel中所有的异常都由Handler类处理,该类包含两个方法:reportrender,其中render方法将异常渲染到http响应中。

将app/Exceptions/Handler类中的render方法改为如下代码:

public function render($request, Exception $exception)
    {
        //若debug为关闭模式下才显示错误页面,否则打印错误信息
        if(!config('app.debug')){
            if($exception instanceof \Symfony\Component\Debug\Exception\FatalErrorException) {
//$exception instanceof \Symfony\Component\Debug\Exception\FatalErrorException 判断不了500错误码
                //500的进这里,中间件判断未登录跳转到登录页也是跳转进这
                return response()->view('error.500', [], 500);
            }else{
                //404只会通过这里
                return response()->view('error.'.$exception->getStatusCode(), [],$exception->getStatusCode());
            }
        }
            return parent::render($request, $exception);
    }

然后在resources/views/error/下面新建错误页面,命名为{errorCode}.balde.php,其中{errorCode}为错误码。

然后访问一个不存在的路由,显示为你的404页面即为成功!

我 秦始皇 打钱