Passing arguments to redirect_to in mojolicious and using them in the target controller

后端 未结 2 1828
自闭症患者
自闭症患者 2020-12-19 07:03

I am passing arguments to redirect_to like

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

or

$c->redirect_to(\'named,         


        
相关标签:
2条回答
  • 2020-12-19 07:33

    Very verbose explanation how to pass and get param

    $self is a mojolicious controller. In each case, we call $obj->param for a list of names, $obj->param("arg") for the value (or list of values):

    $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
    
    0 讨论(0)
  • 2020-12-19 07:41

    $self->redirect_to('named', foo => 'bar'), used without a preceding slash, refers to named routes, and parameters are placed into route placeholders.

    Each route you define in your application gets assigned a route name by default, or you can assign them manually. (You can also get a list of assigned routes using ./myapp routes)

    In a lite app:

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

    The following redirects to the get '/named/:foo' action:

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

    Which is effectively the same as:

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

    You can access the placeholder value within the action using ->param:

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

    Which renders the following HTML:

    bar


    You might also want to check out: http://mojocasts.com/e2#Generic%20Placeholders

    0 讨论(0)
提交回复
热议问题