2012-05-31 9 views
6

के साथ सामग्री-प्रकार को परिभाषित करने के लिए कैसे करें मैं REST_Controller विस्तारित CI_Controller के साथ काम कर रहा हूं और किसी कारण से मेरे अनुरोध सभी सामग्री के प्रकार/जेसन के बजाय टेक्स्ट/html के साथ वापस आ रहे हैं।कोड इग्निटर REST_Controller

$config['rest_default_format'] = 'json'; 

मेरे परिणाम वापस JSON के रूप में आ रहे हैं, लेकिन सामग्री प्रकार सेट नहीं किया जा रहा है: मेरे config में, मैं डिफ़ॉल्ट प्रारूप के रूप में json सेट है। क्या कोई मेरी मदद के साथ मदद कर सकता है?

उत्तर

11

मुझे यकीन नहीं है कि कॉन्फ़िगरेशन प्रारूप सेट करता है या नहीं। लेकिन चारों ओर एक सरल काम सिर्फ हेडर सामग्री प्रकार सेट करने के उत्पादन वर्ग का उपयोग करने के हो सकता है, कुछ की तरह:

$this->output 
    ->set_content_type('application/json') 
    ->set_output(json_encode(array('foo' => 'bar'))); 

(मैनुअल से लिया: here)

0

प्रत्येक समारोहों में contect_type स्थापित करने में मदद करता है, वहीं इसे कन्स्ट्रक्टर पर सेट करके नियंत्रक स्तर पर जेनेरिक बनाया जा सकता है।

public function __construct() { 
    parent::__construct(); 
    ... 
    $this->output->set_content_type('application/json'); 
} 

तो आप बस प्रत्येक कार्य के स्तर

$this->output->set_output('{"message":"Failure"}'); 

यह मेरे लिए काम किया पर उत्पादन स्थापित करेगा।

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