[Catalyst] Using a post argument in a template

James S. White james at jameswhite.org
Fri Jul 25 14:51:52 BST 2008


Cool. I was unaware how the stash worked. I can see the benefit of encapsulating
each component. Thanks!

On Fri, 25 Jul 2008, Tomas Doran wrote:

>
> On 25 Jul 2008, at 13:40, James S. White wrote:
>
> > I was trying to munge the paramaters in the controller, I just
> > can't figure
> > out how to access the variables of a controller method in the
> > template. I'd
> > be more than happy to pass the argument to a controller, and then
> > have the
> > view fetch it from the controller, and then the template read it
> > from the view,
> > If I had any idea how to dereference the variables in order to set
> > them in
> > new components. I was just trying to keep it walk before running
> > and I keep
> > tripping over my feet.
> >
>
> You want to put the data into the 'stash'.
>
> So in your controller you have:
> my ( $self, $c, $arg ) = @_;
> $arg =~ s/stuff/munge/;
> $c->stash->{somearg} = $arg;
>
> And in your view, you say: [% c.stash.somearg %]
>
> You don't really want the view to be able to see the controller's
> internal state / mechanics, and so you have to explicitly stash any
> data which you want to be able to see from the view.
>
> HTH
> t0m
>




More information about the Catalyst mailing list