2013-07-05 8 views
9

लार्वेल 4 में एक मार्ग को परिभाषित करते समय एक ही मार्ग के भीतर कई यूआरआई पथ परिभाषित करना संभव है?सिंगल रूट में एकाधिक मार्ग :: get() कॉल लार्वेल 4

वर्तमान में मैं निम्न कार्य करें:

Route::get('/', '[email protected]'); 
Route::get('/dashboard', array('as' => 'dashboard', 'uses' => 'v1\[email protected]')); 

लेकिन यह मेरा उद्देश्य धरा, मैं की तरह

Route::get('/, /dashboard', array('as' => 'dashboard', 'uses' => '[email protected]')); 
+5

व्यक्तिगत रूप से, मैं 'रीडायरेक्ट करने के लिए /' '/ dashboard' लिए (या इसके पसंद करते हैं पाता है -वर्सा) एसईओ और सादगी के उद्देश्यों के लिए, दो यूआरएल क्यों हैं जो सटीक समान सामग्री प्रदर्शित करते हैं? –

+0

@Alexandre Danault कुछ मामलों में, आप रूट पर आधारित अपने दृश्य की सामग्री को थोड़ा (थोड़ा) करना चाहते हैं, फिर भी एक ही नियंत्रक के साथ अनुरोधों को संभाल लें (यानी पूरे तर्क को 3 अलग-अलग में दोहराना नहीं है नियंत्रक विधियों)। – Alex

उत्तर

2

कुछ करने के लिए है, तो मैं समझता हूँ कि आपके सवाल का सही मैं कहना चाहता हूँ चाहते हैं:

रूट प्रीफिक्सिंग: http://laravel.com/docs/routing#route-prefixing

या (वैकल्पिक) रूट पैरामीटर: http://laravel.com/docs/routing#route-parameters

उदाहरण के लिए

तो:

Route::group(array('prefix' => '/'), function() { Route::get('dashboard', '[email protected]'); }); 

या

Route::get('/{dashboard?}', array('as' => 'dashboard', 'uses' => '[email protected]')); 
+11

दूसरा उदाहरण किसी भी यूरी से मेल खाता है उदा। '/ foo' यह उत्तर गलत है – Moak

20

मेरा मानना ​​है कि आप एक नियमित अभिव्यक्ति के साथ एक वैकल्पिक पैरामीटर का उपयोग करने की जरूरत है:

Route::get('/{name}', array(
    'as' => 'dashboard', 
    'uses' => '[email protected]') 
    )->where('name', '(dashboard)?'); 

* मान लीजिए कि आप उसी नियंत्रक को रूट करना चाहते हैं जो प्रश्न से पूरी तरह स्पष्ट नहीं है।

* वर्तमान स्वीकार्य उत्तर केवल / या /dashboard नहीं है।

+3

2 साल बाद, यह प्रश्न अभी भी प्रासंगिक है। हालांकि यह संभव है कि मामले को दो से अधिक मार्गों से संभाला जाए? पूर्व: '/', '/ डैशबोर्ड', और '/ home' के लिए एक ही नियंत्रक? क्या हम वैकल्पिक पैरामीटर को 'होम' के साथ-साथ 'डैशबोर्ड' तक सीमित कर सकते हैं? – Alex

+0

@Alex प्रश्न प्रासंगिक है। क्या अब तक कोई समाधान है? –

3

मैं इसे दिलचस्प जिज्ञासा खातिर एक समाधान है कि काम करता है पोस्ट करने के लिए इस सवाल का @graemec के तहत एक टिप्पणी के रूप @Alex द्वारा पोस्ट की हल करने के लिए प्रयास करने के लिए के लिए लगता है:

Route::get('/{name}', [ 
    'as' => 'dashboard', 
    'uses' => '[email protected]' 
    ] 
)->where('name', 'home|dashboard|'); //add as many as possible separated by | 

क्योंकि where() का दूसरा तर्क नियमित अभिव्यक्ति की उम्मीद इसलिए हम इसे से बिल्कुल से मिलान करने के लिए असाइन कर सकते हैं, जिनमें से | से अलग है, इसलिए शायद whereIn() से मेरा विचार इस से हल हो गया है।

पुनश्च: यह उदाहरण Laravel पर परीक्षण किया जाता है 5.4.30

आशा किसी को यह उपयोगी

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