2012-03-08 10 views
5

मैंतर्क पासिंग mojolicious में redirect_to के लिए और उन्हें लक्ष्य नियंत्रक में उपयोग कर

$c->redirect_to('named', foo => 'bar'); 

या

$c->redirect_to('named, query => {foo=> 'bar'}); 

तरह redirect_to के लिए तर्क गुजर रहा हूं, लेकिन मैं इसका उपयोग कैसे या पुनः प्राप्त करने के यकीन नहीं है लक्ष्य नियंत्रक में foo का मूल्य।

उत्तर

9

$self->redirect_to('named', foo => 'bar'), जो पिछले स्लैश के बिना उपयोग किया जाता है, नामित मार्गों को संदर्भित करता है, और पैरामीटर रूट प्लेसहोल्डर में रखा जाता है।

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

 
action # route name 

get '/named' => sub { ... }; # named 
get '/named/:foo' => sub { ... }; # namedfoo 
get '/named/:foo' => sub { ... } => 'something-else'; # something-else 

get '/named/:foo' कार्रवाई के लिए निम्न रीडायरेक्ट:

$self->redirect_to('namedfoo', foo => 'bar') 

प्रभावी रूप से रूप में ही है कौन सा

एक लाइट एप्लिकेशन में (तुम भी ./myapp routes का उपयोग कर सौंपा रूट की एक सूची प्राप्त कर सकते हैं) :

$self->redirect_to('/named/bar'); 

आप प्लेसहोल्डर मूल्य को भीतर एक्सेस कर सकते हैं कार्रवाई का उपयोग -> परम:

get '/named/:foo' => sub { 
    my $self = shift; 
    $self->render_text($self->param('foo')); 
}; 

कौन सा निम्न HTML renders:

bar


तुम भी बाहर की जाँच करने के लिए चाहते हो सकता है: http://mojocasts.com/e2#Generic%20Placeholders

+1

Mojocasts बहुत शांत हैं :) –

+0

यदि मैं पुनर्निर्देशित पृष्ठ पर अधिक डेटा पास करना चाहता हूं तो मुझे '$ self-> सत्र -> {data => ['z']} का उपयोग करना चाहिए? और लक्ष्य नियंत्रक '$ self-> सत्र -> {डेटा} [0]' #z में उस डेटा तक पहुंचें –

2

Very verbose explanation कैसे पारित करने के लिए और param

012 प्राप्त करें

$ स्वयं एक मोज़ोलियस नियंत्रक है। प्रत्येक मामले में, हम $ obj- फोन> मूल्य के लिए नामों की सूची के लिए परम, $ obj-> परम ("आर्ग") (या सूची मूल्यों की):

$self->param    -- params from route, post and get 
$self->req->param  -- params from post and get 
$self->req->query_params -- params from get 
$self->req->body_params -- params from post