मुझे Laravel मार्ग समूहों के साथ समस्या है। Laravel हमेशा Route::group विधि में बंद करने का निष्पादन करता है। इन दो मार्गों पर विचार करें:

यह मार्गों/web.php . में घोषित किया गया है

Route::group(['prefix' => 'posts'],function(){
  echo 'posts page';
});


Route::get('home'),function(){
  echo 'home page';
});

जब मैं www.example.com/home खोलता हूं, तो Route::group में बंद हो जाता है।

तो मुझे यह आउटपुट मिल रहा है:

posts page home page

तार्किक रूप से मुझे आउटपुट के रूप में केवल home page मिलना चाहिए

0
AliN11 6 फरवरी 2017, 20:59
शायद इसे मिडलवेयर या कर्नेल (आदि) में घोषित किया गया है? या शायद रूटसर्विसप्रोवाइडर
 – 
online Thomas
6 फरवरी 2017, 21:20
यह मार्गों/web.php . में घोषित किया गया है
 – 
AliN11
6 फरवरी 2017, 21:22
आपने अपने प्रश्न में ऐसा कभी नहीं कहा
 – 
online Thomas
6 फरवरी 2017, 21:23
ठीक है मैंने जोड़ा .....
 – 
AliN11
6 फरवरी 2017, 21:24

1 उत्तर

सबसे बढ़िया उत्तर

यह अपेक्षित व्यवहार है।

Route::group Route::get/post के समूह के लिए एक सहायक/आवरण है।

मार्गों की सूची बनाने के लिए प्रत्येक Route::get/post (कॉलबैक नहीं, केवल आरंभीकरण) निष्पादित किया जाना चाहिए।

साथ ही, Route::group प्राप्त/पोस्ट के रूप में पैरामीटर का समर्थन नहीं करता है:

// Does not work!
Route::group(['prefix' =>'user/{id}'], function ($id) {
    Route::get('view', function() {});
    Route::post('update', function() {});
});

// Works
Route::group(['prefix' => 'user/{id}'], function () {
    Route::get('view', function($id) {});
    Route::post('update', function($id) {});
});

सबसे पहले, routes/web.php अनुरोधों को सीधे पार्स नहीं करता है। यह सभी उपलब्ध मार्गों की सूची बनाता है

इसका मतलब है कि प्रत्येक Route::get/post(यहां तक ​​कि समूह के अंदर भी) को क्रियान्वित किया जाना चाहिए और नियम/चर जोड़ना चाहिए।

Route::group एक सहायक है और यह आंतरिक कॉल/प्राप्त कॉलों में अतिरिक्त पैरामीटर जोड़ता है।

दूसरा, जब मार्ग सूची तैयार होती है, तो कर्नेल उचित कॉलबैक/क्लोजर ढूंढता है और इसे निष्पादित करता है।

दूसरे (मोटे) शब्दों में Route::group प्रत्येक रूट में अपना पहला पैरामीटर जोड़ें :: अंदर प्राप्त/पोस्ट करें।

1
Leonid Shumakov 6 फरवरी 2017, 22:04
हां, लेकिन जब परिभाषित मार्ग और वर्तमान यूआरएल मेल नहीं खाते हैं, तो क्लोजर निष्पादित क्यों होता है? साथ ही ये रूट भी गलत हैं। Route::group पहला तर्क सरणी होना चाहिए
 – 
AliN11
6 फरवरी 2017, 21:48
धन्यवाद, मैंने समूह सिंटैक्स अपडेट किया है। समूह का कॉलबैक रूट :: प्राप्त/पोस्ट की तुलना में अलग है। उनके अलग-अलग लक्ष्य हैं।
 – 
Leonid Shumakov
6 फरवरी 2017, 21:53
तार्किक रूप से जब पहला तर्क गलत होता है, तो दूसरा तर्क निष्पादित नहीं होना चाहिए।
 – 
AliN11
6 फरवरी 2017, 22:02
नहीं, लार्वा मार्गों की पूरी सूची बनाता है। यदि समूह का कॉलबैक निष्पादित नहीं किया जाएगा - आप आंतरिक मार्गों के बारे में कभी नहीं जान पाएंगे। आपको यह नहीं सोचना चाहिए कि समूह का कॉलबैक मार्ग के कॉलबैक के बराबर है। वे समान दिखते हैं, लेकिन उनके अलग-अलग लक्ष्य हैं।
 – 
Leonid Shumakov
6 फरवरी 2017, 22:06
धन्यवाद। समझ लिया ;)
 – 
AliN11
6 फरवरी 2017, 22:09