On 4 Jan 2010, at 19:48, Tommy Butler wrote:
# FORWARDING WITH URL SYNTAX
$c->forward('/groceries/vegetables/carrots');
No, there is no such thing as forwarding to a URL.
You forward to a 'private path'. This may, or may not correspond to a
dispatchable URI.
# FORWARDING WITH ARGUMENTS
$c->forward('yet_another_action', [ 1, 2, 'buckle my shoe' ]);
# FORWARDING TO AN ACTION IN SOME OTHER NAMESPACE
# THAT MIGHT NOT BE ACCESSIBLE AS A URL
my $dbix_query = $c->forward(
'Reports::Custom::TodaysPerformance',
'todays_performance_detailed',
[ { # Snip
} ]
);
Erm, that's forwarding to a component name and a method name, and I
don't think ^^ will work, as it's not a component which will be
returned by $c->component.
# FORWARDING TO A VIEW?
# not sure if you can pass arguements here, nor am I sure why I'm
required
# to fully qualify the namespace starting at 'MyApp' and why I am not
required
# to do so in the example immediately above this one
$c->forward('MyApp::View::MP3');
This is forwarding to a class name without a method name, and so the
method name defaults to 'process'
You don't fully qualify the namespace - you just say ->forward
('View::XXXX');
The other thing is that you've missed the most important and useful
thing you can forward to - an action directly.
$c->forward($c->controller('Foo')->action_for('bar'), [...@args]);
Cheers
t0m
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/