【问题标题】:MethodNotAllowedHttpException redirect to home pageMethodNotAllowedHttpException 重定向到主页
【发布时间】:2016-05-07 10:18:05
【问题描述】:

当在 laravel 5 中发生 MethodNotAllowedHttpException 或者我应该修改哪个模板来编辑 MethodNotAllowedHttpException 的显示时,是否可以将用户重定向到主页

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.1 laravel-5.2


    【解决方案1】:

    打开你的app/Exception/Handler.php

    在这里你会找到一个渲染方法。

    在渲染方法中,在您的 return statement 之前添加这一行:

    if($e instanceof MethodNotAllowedHttpException) 
    return redirect('/');
    

    别忘了先导入异常:

    use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;

    【讨论】:

      【解决方案2】:

      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);
      

      【讨论】:

        【解决方案3】:

        您需要先导入正确的名称空间,然后才能成功捕获 MethodNotAllowedException。

        use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
        

        来源:Laravel 5 - How do I handle MethodNotAllowedHttpException

        【讨论】:

          【解决方案4】:

          你可以使用异常处理程序

          打开 app/Exception/Handler.php 改变渲染方法

          public function render($request, Exception $e)
          {
              if ($e instanceof ModelNotFoundException)
              {
                  return \Redirect::to('/');
              }
              return parent::render($request, $e);
          }
          

          【讨论】:

            猜你喜欢
            • 2018-03-31
            • 1970-01-01
            • 1970-01-01
            • 2019-07-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多