2016-05-18 12 views
5

सुनिश्चित करें मैं Laravel के लिए और लुमेन के लिए नया हूँ। मैं यह सुनिश्चित करना चाहता हूं कि मैं हमेशा आउटपुट के रूप में केवल एक JSON ऑब्जेक्ट प्राप्त कर रहा हूं। मैं लुमेन में यह कैसे कर सकता हूं?Laravel लुमेन JSON उत्तर

मैं response()->json($response); का उपयोग कर एक JSON प्रतिक्रिया प्राप्त कर सकते हैं। लेकिन एक त्रुटि होता है जब, एपीआई मुझे text/html त्रुटियों दे रही है। लेकिन मुझे केवल application/json प्रतिक्रिया चाहिए।

अग्रिम धन्यवाद।

उत्तर

16

आप प्रतिक्रिया आप चाहते हैं वापस जाने के लिए अपने अपवाद संचालक (app/Exceptions/Handler.php) को समायोजित करना होगा।

यह क्या किया जा सकता है की एक बहुत ही बुनियादी उदाहरण है।

public function render($request, Exception $e) 
{ 
    $rendered = parent::render($request, $e); 

    return response()->json([ 
     'error' => [ 
      'code' => $rendered->getStatusCode(), 
      'message' => $e->getMessage(), 
     ] 
    ]); 
} 
+0

जवाब के लिए धन्यवाद। मेरे पास थोड़ा सवाल है, क्या मैं यह कर सकता हूं? 'रिटर्न प्रतिक्रिया() -> जेसन (['कोड' => $ rendered-> getStatusCode(), 'message' => $ e-> getMessage()], $ rendered-> getStatusCode()); 'मैंने खोज की अपवादों की सूची और अभी तक एक सूची नहीं मिल सका। –

+0

कि मेरे लिए ठीक लग रहा है। 'प्रतिक्रिया() -> जेसन() 'फ़ंक्शन के लिए हस्ताक्षर है। https://github.com/laravel/lumen-framework/blob/5.2/src/Http/ResponseFactory.php#L35 – Wader

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