2013-03-06 4 views
12

मैं एक 401 http स्थिति कोड वापस जाने के लिए यदि किसी विशेष apikey सही नहीं है कोशिश कर रहा हूँ:कैसे Zend फ्रेमवर्क में कस्टम HTTP स्थिति कोड के लिए 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(...) 
     )); 
    } 
} 

मेरी नियंत्रक के लिए मैं 'strategies' => array('ViewJsonStrategy)' को शामिल किया है, क्योंकि यह है एक सारस्ट्रेट कंट्रोलर और ऑपरेशन सफल होने पर जेसन वापस आना चाहिए।

मैं वास्तव में ZF2 के लिए नया हूं और यह नहीं जानता कि इस तरह के अपवाद को लागू करने का सही तरीका क्या है।

जिस तरह से मैं वर्तमान में इसे कर रहा हूं, काम नहीं करता है।

आपके संकेतों के लिए धन्यवाद!

+0

यह भविष्य के किसी भी पाठकों को एक गैर मानक स्थिति कोड भेजना चाहते हैं के लिए भी उपयोगी हो सकता है: https://stackoverflow.com/questions/27129344/custom-http-status-code-in-zend-framework-2/27129634 – edigu

उत्तर

24

आपका नियंत्रक पहले से ही एक रिस्पांस वस्तु है, उस पर स्थिति कोड सेट और बस लौट

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

उस उत्तर के लिए धन्यवाद। इसने काम कर दिया! – Roman

संबंधित मुद्दे