距开课0天0时0分-10622349秒
PHPzhong2017-04-10 17:27:59 0 3 228
[PHP讨论组]举报回复话题 ↕
laravel5.2 访问一个不存在的路由时,如何跳转到404,LNMP环境,要怎么配置?
3
0
分享
伊谢尔伦 2017-04-10 17:29:593楼
理论上你把 debug 关了,线上环境是会自动到 404 的。
debug
404
赞 +0添加回复
PHPzhong 2017-04-10 17:29:592楼
你是想要「跳转到 404 页」还是「显示 404 页」?如果是要跳转的话,请配置 app/Exceptions/handler.php,并在 NotFoundException 被抛出时返回一个 Redirect 响应。
阿神 2017-04-10 17:29:591楼
在laravel项目根目录下的app下的Exceptions目录下的Handler.php文件;我们可以在这里自定义异常以及处理异常;
app
Exceptions
Handler.php
自定义异常
处理异常
最常见的莫过于ModelNotFoundException
ModelNotFoundException
下面是一个Demo:
vikin.cc/article/8
//处理Http响应异常 public function render($request, Exception $e) { switch($e){ //使用类型运算符 instanceof 判断异常(实例)是否为 ModelNotFoundException case ($e instanceof ModelNotFoundException): //进行异常处理 return $this->renderException($e); break; default: return parent::render($request, $e); } } //处理异常 protected function renderException($e) { switch ($e){ case ($e instanceof ModelNotFoundException): //自定义处理异常,此处我们返回一个404页面 return view('errors.404'); break; default: //如果异常非ModelNotFoundException,我们返回laravel默认的错误页面 return (new SymfonyDisplayer(config('app.debug'))) ->createResponse($e); } }
通过上述案例,你可以轻松的处理异常,并给用户一个友好的提示!
伊谢尔伦 2017-04-10 17:29:593楼
理论上你把
debug
关了,线上环境是会自动到404
的。 赞 +0添加回复
PHPzhong 2017-04-10 17:29:592楼
你是想要「跳转到 404 页」还是「显示 404 页」?如果是要跳转的话,请配置 app/Exceptions/handler.php,并在 NotFoundException 被抛出时返回一个 Redirect 响应。
赞 +0添加回复
阿神 2017-04-10 17:29:591楼
1、如果你只是想抛出404错误,debug开关可以满足你;
2、如果你想处理异常或自定义异常,可参照如下;
在laravel项目根目录下的
app
下的Exceptions
目录下的Handler.php
文件;我们可以在这里自定义异常
以及处理异常
;下面是一个Demo:
route:
Handler file:
赞 +0添加回复