2013-02-15 47 views
5

मैं सीख रहा हूं कि Mojolicious ढांचे का उपयोग करके प्रोग्राम कैसे प्रोग्राम करें और मैं इस बात से रुक गया हूं कि आप रूट नामों का उपयोग क्यों करते हैं। उदाहरण के लिए एक मार्गmojolicious में रूट नाम का उद्देश्य क्या है?

$r->route('/cities/new') 
     ->via('get') 
     ->to(controller => 'cities', action => 'new_form') 
     ->name('cities_new_form'); 

लेकिन नाम पैरामीटर का उद्देश्य क्या है? मैं वेब ढांचे के लिए नया हूं, इसलिए शायद इसका एक छोटा सा जवाब हो।

उत्तर

16

मार्ग नामकरण आपको बाद में संदर्भित करने की अनुमति देता है यदि आप गतिशील रूप से एक यूआरएल उत्पन्न करना चाहते हैं। अपने उदाहरण के साथ, आप अपने कोड में बाद में ऐसा कर सकता है:

my $link = $self->url_for('cities_new_form') 

और $link स्वचालित रूप से एक यूआरएल /cities/new में समाप्त होने के साथ से भरे जाएंगे। यदि आपके मार्ग में गतिशील भाग हैं तो आप कल्पना प्राप्त कर सकते हैं। उदाहरण के लिए:

$r->route('/cities/:cityname') 
    ->via('get') 
    ->to(controller => 'cities', action => 'new_form') 
    ->name('cities_new_form'); 

तो फिर तुम जैसे

my $link = $self->url_for('cities_new_form', cityname => 'newyork'); 

और $link URL जनरेट कर सकता /cities/newyork के साथ समाप्त होगा।

ये छोटे उदाहरण हैं, लेकिन आपके मार्ग अधिक शामिल होने के बाद आप काफी जटिल सामग्री बना सकते हैं।

यदि आप मार्ग का नाम नहीं देते हैं, तो यह एक डिफ़ॉल्ट नाम मिलता है जो इसमें अल्फान्यूमेरिक वर्णों का एक संयोजन है। यह लंबे मार्गों के लिए थकाऊ हो सकता है ताकि आप उन्हें संक्षेप में नामों का उपयोग कर सकें।

Mojolicious दस्तावेज़ में Named Routes भी देखें।