2015-04-06 12 views
12
/** Redirect 404's to home 
*****************************************/ 
App::missing(function($exception) 
{ 
    // return Response::view('errors.missing', array(), 404); 
    return Redirect::to('/'); 
}); 

में मेरे पास मौजूद नहीं है, तो मेरे पास रूट्स में मौजूद नहीं है। मेरे पास मेरे रूट.एफ़.पी. फ़ाइल में यह कोड है। मैं सोच रहा हूं कि 404 त्रुटि होने पर होम पेज पर रीडायरेक्ट कैसे करें। क्या यह संभव है?लारवेल 5

उत्तर

48

के लिए, आप एप्लिकेशन/अपवाद/Handler.php फ़ाइल में विधि है जो इस तरह दिखता है रेंडर करने के लिए कोड की कुछ लाइनों को जोड़ने के कार्य करने होंगे:

public function render($request, Exception $e) 
    { 
     if($this->isHttpException($e)) 
     { 
      switch ($e->getStatusCode()) 
       { 
       // not found 
       case 404: 
       return redirect()->guest('home'); 
       break; 

       // internal error 
       case '500': 
       return redirect()->guest('home'); 
       break; 

       default: 
        return $this->renderHttpException($e); 
       break; 
      } 
     } 
     else 
     { 
       return parent::render($request, $e); 
     } 
    } 
+1

यह काम करता है! अगर लार्वेल 5 में मार्ग मौजूद नहीं है तो रीडायरेक्ट को होमपेज पर संभालने का यह सही तरीका है। –

+0

सही समाधान, धन्यवाद। –

+0

बिल्कुल सही समाधान! –

1

मैं सिर्फ यह सफाई के लिए एक सुझाव जोड़ना चाहते हैं थोड़ा और ऊपर। मैं शुरू करने के लिए स्वीकृत उत्तर क्रेडिट करना चाहता हूं। मेरी राय में हालांकि, इस समारोह में हर कार्रवाई कुछ वापस कर देगी, स्विच और अन्य कथन थोड़ा सा ब्लोट बनाते हैं। तो इसे सिर्फ एक टैड साफ़ करने के लिए, मैं निम्नलिखित करता हूं।

public function render($request, Exception $e) 
{ 
    if($this->isHttpException($e)) 
    { 
     if($e->getStatusCode == 404) 
      return redirect()->guest('home'); 

     if($e->getStatusCode == 500) 
      return redirect()->guest('home'); 
    } 

    return parent::render($request, $e); 
} 
+0

'getStatusCode()' :) – senty

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