2013-11-25 34 views
7

में पृष्ठों मैं सही समझ में आया: अगर मैं 403 के लिए, 404 आदि त्रुटियों मैं जाँच करनी चाहिए app.debug गलत पर सेट है कि क्या निर्मित पृष्ठ प्रदर्शित करना चाहते हैं:Laravel 4 प्रदर्शन कस्टम त्रुटि केवल उत्पादन

if (!Config::get('app.debug')) { 
    App::error(function(Exception $exception, $code) 
    { 
     switch ($code) { 
      case 403: 
       return Response::view('errors.403', array(), 403); 

      case 404: 
       return Response::view('errors.404', array(), 404); 

      case 500: 
       return Response::view('errors.500', array(), 500); 

      default: 
       return Response::view('errors.default', array(), $code); 
     } 
     Log::error($exception); 
    }); 
} 

क्योंकि, अगर मैं app.debug की जांच किए बिना ऐप :: त्रुटि हैंडलर सेट करता हूं तो मुझे हमेशा विस्तृत जानकारी के बजाय ये कस्टम पेज मिलेंगे

क्या मैं सही हूँ?

+0

मेरी पहली सोचा उपयोग करने के लिए [Laravel के वातावरण विन्यास] (http://four.laravel.com/docs/configuration#environment-configuration) था, लेकिन मैं गलत हो सकता है। –

+1

आप ऐप :: पर्यावरण() के बजाय app.debug चर के बजाय इसका उपयोग करना चाहते हैं? मैंने बस पर्यावरण के बारे में पढ़ा है और यह आश्चर्यजनक है, मैं अपने उत्पादन वातावरण में स्वचालित रूप से app.debug चर को ओवरराइड कर सकता हूं – Victor

+0

आप 'if (! App :: environment (' local ') {}' या जो कुछ भी आप पर्यावरण करते हैं उसका भी उपयोग कर सकते हैं कहा जाता है। – JoshP

उत्तर

10

आप ऐप :: त्रुटि फ़ंक्शन में केवल कथन को स्थानांतरित कर सकते हैं। ताकि त्रुटि हमेशा लॉग हो, और कस्टम त्रुटि पृष्ठ केवल तभी दिखाया जाता है जब app.debug गलत है।

App::error(function(Exception $exception, $code) 
{ 
    Log::error($exception); 

    if (!Config::get('app.debug')) { 
     return Response::view('errors.index', $code); 
    } 
}); 
+0

सिंटैक्स त्रुटि को ठीक करें, अतिरिक्त कथन में '' हटाएं '। – Rashi

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