【发布时间】:2016-05-07 10:18:05
【问题描述】:
当在 laravel 5 中发生 MethodNotAllowedHttpException 或者我应该修改哪个模板来编辑 MethodNotAllowedHttpException 的显示时,是否可以将用户重定向到主页
【问题讨论】:
标签: php laravel laravel-5 laravel-5.1 laravel-5.2
当在 laravel 5 中发生 MethodNotAllowedHttpException 或者我应该修改哪个模板来编辑 MethodNotAllowedHttpException 的显示时,是否可以将用户重定向到主页
【问题讨论】:
标签: php laravel laravel-5 laravel-5.1 laravel-5.2
打开你的app/Exception/Handler.php
在这里你会找到一个渲染方法。
在渲染方法中,在您的 return statement 之前添加这一行:
if($e instanceof MethodNotAllowedHttpException)
return redirect('/');
别忘了先导入异常:
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
【讨论】:
rfc2616 10.4.6 405 Method Not Allowed
在 Laravel 中,如果你指定了 .env
APP_ENV=production
APP_DEBUG=false
并创建
resources/views/errors/405.blade.php
它会在每次出现405 代码时呈现该文件,我认为重定向是不可能的,但您始终可以在 405 错误模板中添加一些 javascript 以便用户被重定向。
setTimeout(function(){ window.location.href='/'; },10000);
【讨论】:
您需要先导入正确的名称空间,然后才能成功捕获 MethodNotAllowedException。
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
来源:Laravel 5 - How do I handle MethodNotAllowedHttpException
【讨论】:
你可以使用异常处理程序
打开 app/Exception/Handler.php 改变渲染方法
public function render($request, Exception $e)
{
if ($e instanceof ModelNotFoundException)
{
return \Redirect::to('/');
}
return parent::render($request, $e);
}
【讨论】: