मैं आशा करता हूं कि किसी यूआरएल से अधिक खंडों हो सकता है के लिए डायनेमिक रूटिंग के साथ बाहर मेरी मदद कर सकते हैं। मैं पूरे वेब पर कुछ खोज कर रहा हूं, लेकिन मुझे कुछ भी नहीं मिला जो मुझे मेरी विशिष्ट स्थिति से बाहर करने में मदद करता है।गतिशील रूटिंग में Laravel 5 आवेदन
एक छोटी सी पृष्ठभूमि ... कई साल पहले, मैं कस्टम ग्राहक वेबसाइटों कि CodeIgniter पर बनाया गया था के लिए एक सीएमएस पैकेज का विकास किया। इस सीएमएस पैकेज में कई मॉड्यूल हैं (पेज, ब्लॉग, कैलेंडर, पूछताछ आदि)। पेज मॉड्यूल के लिए, मैं मार्गों को "कस्टम रूट" कॉन्फ़िगरेशन फ़ाइल में कैश कर रहा था जो पेज के आईडी के साथ पृष्ठ (माता-पिता, दादा, आदि सहित) के लिए पूर्ण मार्ग से जुड़ा हुआ था। मैंने ऐसा किया ताकि पेज को प्रदर्शित करने के लिए मुझे डेटाबेस लुकअप करने की आवश्यकता न हो।
मैं वर्तमान में Laravel (5.1) का उपयोग करते हुए इस सीएमएस पैकेज के पुनर्निर्माण पर काम कर रहा हूँ [मैं Laravel सीख रहा हूँ, जबकि]। पैकेज के नए संस्करण में मेरे पेज मॉड्यूल के साथ आगे बढ़ने से पहले मुझे रूटिंग स्थिति को समझने की आवश्यकता है।
मुझे पता है कि मैं कुछ की तरह कर सकते हैं ...
// routes.php
Route::get('{slug}', ['uses' => '[email protected]']);
// PageController.php
class PageController extends Controller
{
public function view($slug)
{
// do a query to get the page by the slug
// display the view
}
}
और यह अगर मैं नेस्टेड पृष्ठों की अनुमति नहीं दी है, लेकिन मैं ऐसा काम करेगा। और मैं केवल माता-पिता के आधार पर स्लग की विशिष्टता को लागू करता हूं। तो वहाँ फारगो के स्लग के साथ एक से अधिक पृष्ठ ...
- स्थानों/फारगो
- कर्मचारियों हो सकता है/फारगो
पैकेज है कि मैं CodeIgniter का उपयोग कर बनाया के साथ के रूप में, मैं प्रदर्शित करने के लिए सही पृष्ठ खोजने के लिए अतिरिक्त डेटाबेस लुकअप से बचने में सक्षम होना चाहते हैं।
मेरे प्रारंभिक सोचा एक कॉन्फ़िग फ़ाइल है कि गतिशील मार्गों के लिए होता है जैसे मैं प्रणाली के पुराने संस्करण के साथ किया था बनाने के लिए किया गया था। मार्ग केवल विशिष्ट समय पर बदल जाएंगे (जब पृष्ठ बनाया जाता है, जब स्लग संशोधित होता है, जब माता-पिता बदल जाता है), तो "कैशिंग" उन्हें बहुत अच्छा काम करेगा। लेकिन मैं अभी भी लार्वेल के लिए नया हूं, इसलिए मुझे यकीन नहीं है कि इसके बारे में जाने का सबसे अच्छा तरीका क्या होगा।
मुझे लगता है कि निम्नलिखित मार्गों काम यह पता लगाने के लिए प्रबंधन किया था। लेकिन क्या यह इसे स्थापित करने का सबसे अच्छा तरीका है?
Route::get('about/foobar', function(){
return App::make('\App\Http\Controllers\PageController')->callAction('view', [123]);
});
Route::get('foobar', function(){
return App::make('\App\Http\Controllers\PageController')->callAction('view', [345]);
});
मूल रूप से, मैं एक विशेष पृष्ठ आईडी के लिए एक विशिष्ट मार्ग बाध्य करने के लिए जब पेज बनाई गई है चाहते हैं (या जब स्लग या माता-पिता के लिए बदल रहे हैं)।
क्या मैं सिर्फ चीजों को खत्म कर रहा हूं?
कोई मदद या इस बारे में दिशा बहुत सराहना की जाएगी।
धन्यवाद!
'क्या मैं सिर्फ चीजों को खत्म कर रहा हूं?', आईएमओ 'हां'। साथ ही, ये मार्ग स्थैतिक दिखते हैं, यदि आप किसी भी प्लेसहोल्डर को आईडी के लिए अनुमति नहीं देते हैं तो कोई गतिशीलता नहीं है। प्रत्येक मार्ग सिर्फ एक विशिष्ट 'आईडी' से जुड़ा हुआ है। –
मैं चीजों को सेट अप करने की योजना के साथ, मुझे नहीं लगता कि गतिशील मार्ग का उपयोग करने का कोई तरीका है जिसके लिए मुझे सही पृष्ठ खोजने के लिए अतिरिक्त डेटाबेस क्वेरी करने की आवश्यकता नहीं होगी। मैं ब्लॉग की तरह अन्य मॉड्यूल के लिए गतिशील मार्गों का उपयोग करूंगा, लेकिन नियमित पृष्ठों के लिए, मुझे नहीं लगता कि यह काम करेगा। – Becky