2012-03-08 10 views

risposta

9

$self->redirect_to('named', foo => 'bar'), utilizzato senza una barra precedente, fa riferimento alle rotte denominate e i parametri sono posizionati nei segnaposti della rotta.

Ogni percorso definito nell'applicazione viene assegnato per impostazione predefinita a un nome di percorso o è possibile assegnarli manualmente. (È anche possibile ottenere un elenco di percorsi assegnati utilizzando ./myapp routes)

In un'applicazione lite:

 
action # route name 

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

Le seguenti reindirizza al get '/named/:foo' azione:

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

Che è effettivamente la stessa :

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

È possibile accedere al valore di segnaposto all'interno dell'azione utilizzando -> param:

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

che rende il seguente codice HTML:

bar


Si potrebbe anche voler controllare: http://mojocasts.com/e2#Generic%20Placeholders

+1

I Mojocasts sono molto cool :) –

+0

Se voglio passare più dati alla pagina reindirizzata, dovrei usare '$ auto-> session -> {data => ['z']}' non dovrebbe? e accedere a quei dati nel controller di destinazione '$ auto-> sessione -> {data} [0]' #z –

2

Very verbose explanation come passare e ricevi param

$ self è un controller mojolicious. In ogni caso, noi chiamiamo $ obj-> param per una lista di nomi, $ obj-> param ("arg") per il valore (o una lista di valori):

$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 
Problemi correlati