如何在Zend Framework 2中返回自定义HTTP状态代码

Rom*_*man 14 zend-framework2

如果给定的apikey不正确,我试图返回401 http状态代码:

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(...)
        ));
    }
} 
Run Code Online (Sandbox Code Playgroud)

对于我的控制器我添加了'strategies' => array('ViewJsonStrategy)'因为它是一个AbstractRestfulController并且如果操作成功则应该返回json.

我是ZF2的新手,不知道实现这种异常的正确方法是什么.

我目前正在这样做的方式不起作用.

谢谢你的提示!

Cri*_*isp 27

您的控制器已经有一个Response对象,在其上设置状态代码并返回

    if (!$this->isApiKeyValid()) {
        $this->getResponse()->setStatusCode(401);
        return;
    }
Run Code Online (Sandbox Code Playgroud)

  • Zend框架1:$ this-> getResponse() - > setHttpResponseCode(401); (3认同)