[Catalyst] Can't seem to use forward or detach. Any
special requirements?
Tomas Doran
bobtfish at bobtfish.net
Wed Apr 29 12:36:46 GMT 2009
kakimoto at tpg.com.au wrote:
> The app works fine except that I have set up an eval block within my
> controller.
> My detach call comes right after the redirect call.
>
> It looks like this:
>
> $c->res->redirect($c->uri_for('/users/subscriptions/added '));
> $c->detach ();
>
> What's weird is that on my terminal, the catalyst debug messages
> extract reads:
>
> [debug] User subscription (id, 1278) updated in database.
> [debug] update: trapped exception - catalyst_detach
>
> Any idea as to what this means?
$c->detach works by throwing an exception, whos contents are
$Catalyst::DETACH (which is the string 'catalyst_detach').
Therefore, if you call $c->detach inside an eval block of your own, then
you'll end up catching the exception, which is, I guess, what is
happening here.
Don't do that :)
Call $c->detach outside of your eval block and Catalyst will catch the
exception, and everything will be fine.
Another thought - what does $c->detach() do / what do you expect it to
do? If you aren't detaching _to somewhere_, then why not just return?
Cheers
t0m
More information about the Catalyst
mailing list