7

私はredirect_toに引数を渡します

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

また

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

しかし、それを使用する方法や、ターゲットコントローラーでfooの値を取得する方法がわかりません。

4

2 に答える 2

13

$self->redirect_to('named', foo => 'bar')、前にスラッシュを付けずに使用すると、名前付きルートを参照し、パラメーターはルートプレースホルダーに配置されます。

アプリケーションで定義する各ルートには、デフォルトでルート名が割り当てられますが、手動で割り当てることもできます。(を使用して、割り当てられたルートのリストを取得することもできます./myapp routes

ライトアプリの場合:

アクション#ルート名

get'/ named' => sub {...}; #名前付き
get'/ named /:foo' => sub {...}; #namedfoo
get'/ named /:foo' => sub {...} =>'something-else'; #何か-その他

get '/named/:foo'以下は、アクションにリダイレクトします。

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

これは事実上次と同じです:

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

-> paramを使用して、アクション内のプレースホルダー値にアクセスできます。

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

次のHTMLをレンダリングします。

bar


http://mojocasts.com/e2#Generic%20Placeholdersもチェックして ください。

于 2012-03-08T19:01:35.847 に答える
4

合格と取得の方法についての非常に詳細な説明param

$selfはmojoliciousコントローラーです。いずれの場合も、名前のリストには$ obj-> paramを呼び出し、値(または値のリスト)には$ obj-> param( "arg")を呼び出します。

$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
于 2016-12-01T10:41:06.030 に答える