:Args(1)
Catalyst でプライベート アクションを使用する必要はありません。
cpan Catalyst マニュアルから: 新しい引数を無名配列に追加することで、転送アクションに渡すことができます。呼び出されたメソッド (または転送されたメソッド) では、 で引数を取得します$c->req->args
。
sub hello : Global {
my ( $self, $c ) = @_;
$c->stash->{message} = 'Hello World!';
$c->forward('check_message',[qw/test1/]);
}
sub check_message : Private {
my ( $self, $c, $first_argument ) = @_;
my $also_first_argument = $c->req->args->[0]; # now = 'test1'
# do something...
}
$c->stash->{typeid};
代わりにstash を使用することもできます。その後、 を使用してメソッドを直接呼び出すことができます$c->forward('priv_method');
。
元:
sub hello : Global {
my ( $self, $c ) = @_;
$c->stash->{message} = 'Hello World!';
$c->forward('check_message'); # $c is automatically included
}
sub check_message : Private {
my ( $self, $c ) = @_;
return unless $c->stash->{message};
$c->forward('show_message');
}
sub show_message : Private {
my ( $self, $c ) = @_;
$c->res->body( $c->stash->{message} );
}