नाम मापदंडों आमतौर पर मार्ग सेगमेंट के रूप में लेकिन स्पष्ट नामकरण के बिना किया जाता है के लिए धन्यवाद। उदाहरण के लिए आप कर सकते थे ओ कुछ इस तरह:
Route:get('test/{id?}/{page?}/{opt?}', function ($id = null, $page = null, $opt = null) {
// do something
});
$id
, $page
और $opt
सभी वैकल्पिक यहाँ के रूप में खंड परिभाषाओं में ?
द्वारा परिभाषित किया गया है, और वास्तव में वे समारोह में मूलभूत मूल्यों होती है। हालांकि, अगर आप यहाँ किसी समस्या के कुछ पर ध्यान देंगे:
- वे सही क्रम
- केवल
$opt
वास्तव में वैकल्पिक, $page
अगर $opt
है प्रदान की जानी चाहिए है में URL में प्रदर्शित करने के लिए है, और $id
चाहिए अगर $page
यह एक सीमा है जिस तरह से लार्वाले नामित सेगमेंट को कार्य/विधि पैरामीटर पर मानचित्रित करता है। आप सैद्धांतिक रूप से यह काम करने के लिए अपने स्वयं के तर्क को लागू कर सकता है, हालांकि:
Route:get('test/{first?}/{second?}/{third?}', function ($first = null, $second = null, $third = null) {
if ($first) {
list($name, $value) = @explode('=', $first, 2);
$$name = $value;
}
if ($second) {
list($name, $value) = @explode('=', $second, 2);
$$name = $value;
}
if ($third) {
list($name, $value) = @explode('=', $third, 2);
$$name = $value;
}
// you should now have $id, $page and $opt defined if they were specified in the segments
});
ऐसा नहीं है कि यह एक बहुत ही भोली समाधान है, =
द्वारा अंधा विस्फोट पर निर्भर के साथ ही एक मनमाने ढंग से-inputted वैरिएबल का नाम स्थापित करने (जो स्पष्ट रूप से परेशानी के लिए पूछ रहा है)। आपको इस कोड में और अधिक जांच जोड़नी चाहिए, लेकिन यह आपको उपरोक्त दो समस्याओं को प्राप्त करने का विचार देनी चाहिए।
यह शायद ध्यान दिया जाना चाहिए कि इस थोड़े, 'सही तरीके से' मार्ग और Laravel में यूआरआई करने के लिए के खिलाफ जा रहा है तो जब तक आप वास्तव में इस कार्यक्षमता की जरूरत है, आप जिस तरह से आप एक करने के लिए इन यूआरआई बन रहे हैं पर पुनर्विचार करना चाहिए जिस तरह से लार्वा ढांचे के लिए अधिक सेट अप है।
आईडी = 1 & पेज = 2 & ऑप्ट = 1 क्लासिक, सर्वर के लिए मानकों को प्रसारित करने के पुराने तरीका है; आईडी/1/पेज/2/ऑप्ट/1 नया, ढांचा तरीका है। –
एंड्रयू इस तकनीक का नाम क्या है? धन्यवाद – clarenswd