Подтвердить что ты не робот

Как вернуть пользовательский код состояния HTTP в Zend Framework 2

Я пытаюсь вернуть код состояния 401 http, если данный apikey неверен:

class MessageRestfulController extends AbstractRestfulController {
    # ...
    public function get($id) {
        if (!$this->isApiKeyValid()) {
            $response = new Response();
            $response->setStatusCode(Response::STATUS_CODE_401);
            return $response;
        }
        # ...
        return new JsonModel(array(
            'data' => array(...)
        ));
    }
} 

Для моего контроллера я добавил 'strategies' => array('ViewJsonStrategy)', потому что это AbstractRestfulController и должен возвращать json, если операция прошла успешно.

Я действительно новичок в ZF2 и не знаю, как правильно реализовать такое исключение.

То, как я сейчас это делаю, не работает.

Спасибо за ваши подсказки!

4b9b3361

Ответ 1

У вашего контроллера уже есть объект Response, установите для него код состояния и просто верните

    if (!$this->isApiKeyValid()) {
        $this->getResponse()->setStatusCode(401);
        return;
    }