PHP Slimframework v3忽略NotFoundHandler类中的状态

时间:2016-12-23 19:15:56

标签: php slim slim-3

我有SlimFramework的问题,我想创建一个基于类的NotFoundHandler,但它忽略了withStatus方法,即使我从一个路由调用它。我没有计划我做错了什么。你能帮我解决这个问题吗?

我有NotFoundHandler类的以下代码:

class NotFoundHandler
{
  /**
   * @var \Slim\Container
   */
  private $container;

  /**
   *
   * @param \Slim\Container $c
   */
  public function __construct(\Slim\Container &$c)
  {
      $this->container = $c;
  }

  /**
   * @param $request \Slim\Http\Request
   * @param $response \Slim\Http\Response
   * @return \Slim\Http\Response Response
   */
  public function __invoke($request, $response)
  {
      return $this->container['response']
          ->withStatus(404)
          ->write("I was not found")
        );
   }
}

此外,这些是我对容器的设置:

$container['settings']['displayErrorDetails'] = true;
$container['settings']['determineRouteBeforeAppMiddleware'] = true;
$container['settings']['addContentLengthHeader'] = false;
$container['settings']['outputBuffering '] = false;

我找不到这样的处理程序:

$container['notFoundHandler'] = function ($c) {
    return new NotFoundHandler($c);
};

1 个答案:

答案 0 :(得分:0)

现在有效。我没有在其他中间件中正确设置响应。

<强> CLOSED