Laravel中的所有异常都由Handler类处理,该类包含两个方法:report和render,其中render方法将异常渲染到http响应中。Laravel的Handler类文件位置:app/Exceptions/Handler,因为render方法时间异常渲染到http响应中,所以我们只需要修改render方法即可。网上很多方法都是将render方法修改为:publicfunctionrender($request,Exception$exception){if($exception){returnresponse()->view('error.'.$exception->getStatusCode(),[],$exception->getStatusCode());}returnparent::render($request,$exception);}这个时候你的测试可能没问题,但是如果你写一个登录方法,如果你访问一个需要登录的页面,这个时候就会报错这是因为如果访问一个必须登录的页面,此时会进入app/Exceptions/Handler.php的render方法。这时候$exception->getStatusCode()是不存在的,此时会报错,那么怎么解决呢?这个时候我们找到了parent::render这个方法:这个时候我们发现原来的laravel框架已经包含了我们的情况,那么我们可以把上面的方法改成:publicfunctionrender($request,Exception$exception){if(!($exceptioninstanceofAuthenticationException)){returnresponse()->view('error.'.$exception->getStatusCode(),[],$exception->getStatusCode());}返回父::render($request,$exception);}这时候这个问题就完美解决了然后在resources/view/error/下新建一个错误页面。错误页面的名称为:{errorcode}..balde.php,其中errorcode为错误代码,如404..balde.php配置完成后,访问不存在的路由时,可以跳转到你配置的404页面作者:huaweichenai来源:www.wj0511.com原文:https://www.wj0511.com/site/d...版权声明:本文为博主原创文章,转载请附上转载博文链接!
