您不需要而不能:Args(1)
用于 Catalyst 中的私人操作。
来自 cpan Catalyst Manual:您可以通过将新参数添加到匿名数组中来将新参数传递给转发操作。在被调用的方法(或转发的方法)中,您将在$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...
}
您也可以使用 stash$c->stash->{typeid};
代替。然后你可以直接使用$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} );
}