मैंने web.php में एक-लाइनर के रूप में संपर्क, छाप या "हमारे बारे में" जैसे स्थिर मार्ग लिखने के बारे में सोचा। मैंने इसे लारवेल डेली में देखा।

web.php

Route::get('/{page}', App\Http\Controllers\StaticPageController::class)
->name('page')
->where('page', 'about-us|imprint|contact');

यह अच्छा है लेकिन मुझे अपने नावबार में समस्या आ रही है। माई ब्लेड नेवबार का एक गतिशील हिस्सा है। वर्तमान मेनू आइटम हाइलाइट किया गया है। बहुत सरल।

nav.blade.php

<x-nav-link :href="route('about-us')" :active="request()->routeIs('about-us')">
  {{ __('About us') }}
</x-nav-link>

नए वन-लाइनर के साथ, मुझे निम्न त्रुटि संदेश मिलता है:

Symfony\Component\Routing\Exception\RouteNotFoundException. मार्ग [हमारे बारे में] परिभाषित नहीं है। (देखें: /project01/resources/views/includes/nav.blade.php)

जो तार्किक है, क्योंकि मेरे पास अब हमारे बारे में मार्ग नहीं है।

दरअसल, मार्ग को संबंधित सरणी मानचित्रण दिया जाना चाहिए। लेकिन मैं नहीं जानता कि कैसे। मैं समस्या को कैसे हल कर सकता हूँ!


इस समस्या का समाधान यह होगा:

<x-nav-link :href="route('page', ['page' => 'about-us'])" :active="request()->routeIs('about-us')">
  {{ __('About us') }}
</x-nav-link>

सभी अच्छे उत्तरों के लिए विशेष धन्यवाद!

-1
Maik Lowrey 3 सितंबर 2021, 11:44

3 जवाब

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

आपके पास दो विकल्प हैं।

1- routeIs() को is() में बदलें और पथ का उपयोग करें, मार्ग का नाम नहीं

<x-nav-link :href="route('page', ['page' => 'about-us'])" :active="request()->is('about-us/*')">
  {{ __('About us') }}
</x-nav-link>

2- एक लाइनर के बजाय 3 मार्गों पर वापस जाएं। एक लाइनर का उपयोग करने में कोई लाभ नहीं है। यह पढ़ने में धीमा और कठिन है (बनाए रखना)

1
Maik Lowrey 3 सितंबर 2021, 11:32

आपने किसी दिए गए मार्ग को page नाम के आवश्यक पैरामीटर के साथ एक नाम page दिया है। तो, आपको निम्न कोड का उपयोग करना चाहिए:

route('page', ['page' => 'about-us']);

https://laravel.com/docs/6.x/routing#named-routes

1
Thân LƯƠNG 3 सितंबर 2021, 09:19

मुझे लगता है कि कोई गलतफहमी है।'about-us|imprint|contact' पैरामीटर प्रतिबंध है।'पेज' मार्ग का नाम है। तो यह काम करना चाहिए;

<x-nav-link :href="route('page','about-us')" :active="Request::url() == route('page','about-us')">
    {{ __('About us') }}
</x-nav-link>
0
tahabas 3 सितंबर 2021, 09:50