2013-03-06 3 views
12

ich einen 401 HTTP-Status-Code zurück bin versucht, ob ein bestimmtes apikey nicht korrekt ist:Wie benutzerdefinierten HTTP-Statuscode in Zend Framework Return 2

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(...) 
     )); 
    } 
} 

Für meine Controller i 'strategies' => array('ViewJsonStrategy)' hinzugefügt habe, weil es ein AbstractRestfulController und sollte json zurückgeben, wenn der Vorgang erfolgreich war.

Ich bin wirklich neu in ZF2 und weiß nicht, was der richtige Weg ist, eine solche Ausnahme zu implementieren.

Die Art, wie ich es gerade mache, funktioniert nicht.

Danke für Ihre Hinweise!

+0

Dies wird für alle zukünftigen Leser auch nützlich sein, die einen Nicht-Standard-Statuscode senden wollen: https://stackoverflow.com/questions/27129344/custom-http-status-code-in-zend-framework-2/27129634 – edigu

Antwort

24

Ihr Controller verfügt bereits über ein Response-Objekt, setzen Sie den Statuscode auf, dass und das Rück nur

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

Danke für diese Antwort. Es funktionierte! – Roman