为什么我的http响应代码没有在ZF2中返回?

时间:2015-04-08 06:43:39

标签: php zend-framework2 httpresponse

我正在尝试在我的应用程序中验证用户。 如果用户未经过身份验证,我尝试执行以下代码

$eventManager = $e->getApplication()->getEventManager();
$eventManager->attach(MvcEvent::EVENT_ROUTE, function($e) use ($app) {
    $response = $e->getResponse();
    $response->setStatusCode(401);
    $response->setContent(json_encode(array(
           'message' => 'You are not authorised for this request',
                'name' => 'Status Forbidden'
    )));
    $app->getEventManager()->trigger(MvcEvent::EVENT_DISPATCH_ERROR, $e);
            return $response;
    }, PHP_INT_MAX);

为什么我无法获得上述代码中定义的http响应代码401

响应内容按预期返回。

1 个答案:

答案 0 :(得分:0)

尝试在返回之前发送响应并触发事件。我认为可以在更换呼叫触发器,响应代码和内容时使用。

$response->sendResponse();