2014-11-06 16 views
9

मैं लैरवेल 4 ढांचे का उपयोग कर रहा हूं और मैंने मार्गों का एक पूरा समूह परिभाषित किया है, अब मैं सभी अपरिभाषित यूआरएल के लिए आश्चर्यचकित हूं, उन्हें 404 पेज पर कैसे रूट करें?लारवेल डिफ़ॉल्ट मार्ग 404 पेज

उत्तर

9

अपरिभाषित मार्गों आग Symfony\Component\HttpKernel\Exception\NotFoundHttpException अपवाद है जो आप अनुप्रयोग में संभाल कर सकते हैं/इस तरह अनुप्रयोग :: त्रुटि() विधि का उपयोग शुरू/global.php:

/** 
* 404 Errors 
*/ 
App::error(function(\Symfony\Component\HttpKernel\Exception\NotFoundHttpException $exception, $code) 
{ 
    // handle the exception and show view or redirect to a diff route 
    return View::make('errors.404'); 
}); 
+1

तकनीकी रूप से मैं एक रूट पर रीडायरेक्ट नहीं करता हूं जब आप 404 रूट पर क्लिक करते हैं तो केवल 404 पेज प्रदर्शित करते हैं। – bgallagh3r

+1

हां यही मेरा इरादा है, कोई रीडायरेक्ट नहीं, बस 404 पेज दिखाएं, और आपका सही है, धन्यवाद! – dulan

6

त्रुटियों से निपटने हो सकता है के लिए विधि की सिफारिश की Laravel डॉक्स में पाया:

http://laravel.com/docs/4.2/errors#handling-404-errors

निम्नलिखित तरीके से शुरू/global.php फ़ाइल में अनुप्रयोग :: लापता() फ़ंक्शन का उपयोग करें:

App::missing(function($exception) 
{ 
    return Response::view('errors.missing', array(), 404); 
}); 
4

मैं Laravel 5, किसी के लिए कौन परवाह करता है करने के लिए अपने laravel 4 codebase अपग्रेड कर दिया है:

App::missing(function($exception) {...}); 

Laravel 5 में अब उपलब्ध नहीं है, क्रम में सभी गैर-मौजूद मार्गों के लिए 404 दृश्य वापस जाने के लिए में ,/HTTP/Kernel.php ऐप्लिकेशन में निम्नलिखित डाल कोशिश: के अनुसार

public function handle($request) { 
    try { 
     return parent::handle($request); 
    } 
    catch (Exception $e) { 
     echo \View::make('frontend_pages.page_404'); 
     exit; 
     // throw $e; 
    } 
} 
6

आधिकारिक documentation

तुम सिर्फ में एक फ़ाइल जोड़ सकते हैं: फिर से स्रोत/विचार/त्रुटियां/ को 404 त्रुटि पर प्रदर्शित करने के लिए 404.blade.php कहा जाता है।

+0

यह दस्तावेज लैरवेल 5 के लिए है, लेकिन हाँ आप सही हैं और मैंने हाल ही में लार्वेल 4.2 आधारित प्रोजेक्ट को लैरवेल 5 में अपडेट किया है। अब क्या होगा यदि मैं 2 404 पेज, मोबाइल उपकरणों के लिए और दूसरा डेस्कटॉप ब्राउज़र के लिए चाहता हूं ? – dulan

17

लैरवेल 5.2 में। त्रुटियों फ़ोल्डर में केवल 404.blade.php फ़ाइल नाम न बनाएं, यह स्वचालित रूप से 404 अपवाद का पता लगाएगा।

+2

यह स्वीकार्य उत्तर होना चाहिए – exussum

+0

यह करने का यह सही तरीका है – codiiv

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