【问题标题】:OctoberCMS 401, 402, 403, 503, 400 error code handling十月CMS 401、402、403、503、400错误代码处理
【发布时间】:2018-10-22 13:09:53
【问题描述】:

我只想问一下octobercms是否只能设置两种类型的错误???

  1. 404 [通过使用 /404 url​​ 创建页面]

  2. 500 [通过使用 /error url 创建页面]

我们如何设置 400、401、402、403、503、400 等??????

【问题讨论】:

    标签: octobercms octobercms-plugins


    【解决方案1】:

    这两种情况是作者已经在Cms Main Controller 中编写代码但对于其他人我们需要自己编写代码的特殊情况:)

    嗯,都与HttpException有关,所以这是我们实际设置和抛出的代码,

    App::abort(403, 'Access is forbidden to the requested page.' /* message */);
    

    现在这些都是HttpException,我们可以使用App::error拦截它们。您需要将此代码添加到您的 plugin boot 方法中。

    //\App::error(function(\Exception $exception) { // for handling all Exceptions
    
    // for handling http related exceptions
    \App::error(function(
        \Symfony\Component\HttpKernel\Exception\HttpException $exception) {
    
        dd($exception->getStatusCode()); /* 403 */ // 400, 401, 402, 403, 503, 400 etc            
        // Handle the exception...
    });
    

    您可以在此处查看status-code 并根据需要处理它们。 参考:https://octobercms.com/docs/services/error-log#http-exceptions

    【讨论】:

      【解决方案2】:

      如果有人仍然对将状态代码传递到错误页面有疑问,只需将其添加到 Plugin.php 中的 boot 方法中

      App::error(function(\Symfony\Component\HttpKernel\Exception\HttpException $exception) {
          $controller = new \Cms\Classes\Controller(\Cms\Classes\Theme::getActiveTheme());
          $controller->setStatusCode($exception->getStatusCode());
          return $controller->run('/error');
      });
      

      并使用检查/error 上的状态码

      {% if this.controller.getStatusCode() == 403 %}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-18
        • 2023-03-18
        • 2017-11-06
        • 2017-08-06
        • 1970-01-01
        • 2016-02-14
        • 1970-01-01
        • 2018-06-01
        相关资源
        最近更新 更多