2013-02-14 12 views
5

मैं यूआरएल से वाइल्डकार्ड कैप्चर करने की कोशिश कर रहा हूं और फिर पहले इसे फ़िल्टर में पास कर दूंगा ताकि नियंत्रक के लिए मार्ग हो। मुझे यकीन नहीं है कि सवाल को कैसे साजिश करना है, लेकिन यहां तक ​​कि मैंने अभी तक कोशिश की है।लैरवेल, रूटिंग वाइल्डकार्ड फ़िल्टर करने के लिए और फिर नियंत्रक

Route::get('test/(:any?)', array('as' => 'testroute', 'uses' => '[email protected]', 'before' => "test_filter:$1")); 

Route::filter('test_filter', function($id = NULL) 
{ 
    if($id) 
    echo "This id is " . $id; // Prints "This id is $1" 
}); 

और

Route::get('test/(:any?)', array('as' => 'testroute', function($id = NULL) 
{ 
    if($id) 
     echo "this id is " . $id; // Does not do anything 
}, 'uses' => '[email protected]')); 

असल में, मैं अगर वहाँ एक आईडी URL में संलग्न है की जाँच करें और एक कुकी सेट अगर वहाँ एक है चाहता हूँ। लेकिन इस मामले के बावजूद, मैं चाहता हूं कि इस मार्ग को नियंत्रक द्वारा संभाला जाए, इससे कोई फर्क नहीं पड़ता कि कोई आईडी संलग्न है या नहीं।

मुझे इतने सारे मार्गों के साथ एक ही काम करना है, इसलिए मैं नियंत्रक के कोड को संशोधित करने के बजाय फ़िल्टर की तरह कुछ पसंद करूंगा।

मुझे पता है कि मैं सीधे वाइल्डकार्ड तत्व को बंद करने के लिए पास कर सकता हूं, या मैं इसे किसी भी नियंत्रक के पैरामीटर के रूप में खिला सकता हूं लेकिन उस स्थिति में मुझे नियंत्रक कोड संशोधित करना होगा, जो मैं नहीं कर सकता पल।

क्या मैं इसे फ़िल्टर के माध्यम से कर सकता हूं? या कोई अन्य तरीका जिसमें मुझे नियंत्रक कोड संशोधित करना पड़ेगा?

उत्तर

0

से पहले

Route::get('test/(:any?)', 
    array(
     'as' => 'testroute', 
     'uses' => '[email protected]', 
     'before' => "test_filter", 
     function($my_cookie_value) 
     { 
      // Set cookie here 
     } 
    ) 
); 

here

+0

@Gufran मैंने अपना कोड – afarazit

+0

अपडेट किया है, गुमनाम फ़ंक्शन कुछ भी नहीं करता है। यह सिर्फ फ़िल्टर लागू करता है और फिर मार्ग को नियंत्रक को अग्रेषित करता है। इसके अलावा, मुझे फ़िल्टर या अज्ञात बंद करने के अंदर वाइल्डकार्ड के मूल्य को पकड़ने की आवश्यकता है। – Gufran

+0

@ गुफ्रान ने फिर से कोड अपडेट किया, एनन फ़ंक्शन में मैच पास कर दिया, देखें कि यह – afarazit

0

से लिया मैं (पुराने Laravel संस्करणों के लिए या फिल्टर) एक मिडलवेयर http://laravel.com/docs/5.1/middleware का उपयोग करेंगे के बाद एक गुमनाम सही गुजर कोशिश करो और एक समूह में मार्ग/एस जोड़ने जिसमें मिडलवेयर है जैसा कि आप यहां देख सकते हैं http://laravel.com/docs/5.1/routing#route-group-middleware

मध्य कोड रूट कोड से पहले निष्पादित किया जाएगा, जहां आप अपनी कुकी प्रबंधित करने के लिए एक तर्क जोड़ सकते हैं।

+0

धन्यवाद। बहुत सराहना की लेकिन यह सवाल 2.5 साल पुराना है। यह आम तौर पर प्रश्न के तहत पोस्ट करने की तारीख दिखाता है इसलिए अगली बार तिथि की जांच करने का प्रयास करें। – Gufran

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