With url_for('@user_activate', $user); I got an error, but without the
@ it works.

Now I changed the route to this:

user_activate:
  url:     /user-activate/:id
  class:   sfPropelRoute
  options: { model: User, type: object }
  param:   { module: user, action: activate }

When I type in the URL (/website_dev.php/user-activate/1), it shows
the page correctly. Then, when I submit a form to the exact same URL,
it says "Action "useractivate/1" does not exist.".
I guess the fact that it searches for a module named useractivate and
a action that is named 1, means that it takes the default route yet
again. On a form submit, it just doesn't recognize the route class
"user_activate"!

This is really weird!



On 12 okt, 12:10, Alexandre SALOME <[email protected]> wrote:
> For the route, use :
>
> url_for('@user_activate', $user);
>
> Could you try a simple thing ?
>
> Change your URL : set something like /user-activate/:id
>
> Does it works like this ?
>
> 2009/10/12 HAUSa <[email protected]>
>
>
>
>
>
> > With the requirements it works, the url_for('@user_activate?id=' .
> > $user->getId()) didn't have any effect.
> > But what is the difference with the requirements? It's strange that it
> > doesn't take the user_activate route in first place, because I placed
> > it on top of my routing.yml document...
>
> > On 9 okt, 18:18, Alexandre SALOME <[email protected]> wrote:
> > > 1 => true in routing parameters...
>
> > > Strange...
>
> > > Try adding :
>
> > > *requirements*:
> > >         id: \d+
>
> > > Finally :
>
> > > user_activate:
> > >   url:     /user/activate/:id
> > >   class:   sfPropelRoute
> > >   options: { model: User, type: object }
> > >   param:   { module: user, action: activate }
> > >   requirements:
> > >     id: \d+
>
> > > 2009/10/9 NairuS <[email protected]>
>
> > > > 2009/10/9 HAUSa <[email protected]>
>
> > > >> Hey, this is weird! I checked the log like you said Alexandre, and it
> > > >> matches just the default one...
>
> > > >> Oct 09 10:17:36 symfony [info] {sfPatternRouting} Connect
> > > >> sfPropelRoute "user_activate" (/user/activate/:id)
> > > >> Oct 09 10:17:36 symfony [info] {sfPatternRouting} Connect
> > > >> sfPropelRoute "user_edit" (/user/edit/:id)
> > > >> Oct 09 10:17:36 symfony [info] {sfPatternRouting} Connect sfRoute
> > > >> "homepage" (/)
> > > >> Oct 09 10:17:36 symfony [info] {sfPatternRouting} Connect sfRoute
> > > >> "default_index" (/:module)
> > > >> Oct 09 10:17:36 symfony [info] {sfPatternRouting} Connect sfRoute
> > > >> "default" (/:module/:action/*)
> > > >> Oct 09 10:17:36 symfony [info] {sfPatternRouting} Match route
> > > >> "default" (/:module/:action/*) for /user/activate/1 with parameters
> > > >> array (  1 => true,  'module' => 'user',  'action' => 'activate',)
>
> > > >> But why doesn't it match "user_active"? The URL is correct!
> > > >> /website_dev.php/user/activate/1
>
> > > >> On 9 okt, 10:15, HAUSa <[email protected]>
> > > >> wrote:
> > > >> > Ah, the URL problem is solved. I had to use url_for('user_activate',
> > > >> > $user), and not url_for('@user_activate', $user) (mind the @).
>
> > > > Yep it's true.
>
> > > > Sorry! With this syntax :
> > > >   > url_for('@user_activate?id=' . $user->getId())
>
> > > > it must work too.
>
> > > >> > But, the form problem still remains.
> > > >> > When I submit my form, it says
> > > >> > "Fatal error: Call to undefined method sfRoute::getObject() in
> > /home/
> > > >> > snuber/domains/snuber.net/public_html/apps/website/modules/user/
> > > >> > actions/actions.class.php on line 59"
>
> > > >> > This is my form now:
> > > >> > <form id="form_user_activate" action="<?php echo url_for
> > > >> > ('user_activate', $user) ?>" method="post" enctype="multipart/form-
> > > >> > data">
>
> > > >> > On 9 okt, 09:50, Alexandre SALOME <[email protected]>
> > wrote:
>
> > > >> > > Sure, your configuration is OK.
>
> > > >> > > Maybe the routing match another route before this one.
>
> > > >> > > Please check in the logs and tell us,
>
> > > >> > > look if you do you have any other rule that could catch your url
> > > >> before ?
>
> > > >> > > Use the task *./symfony app:routes websites* to get the list of
> > the
> > > >> app
> > > >> > > routes.
>
> > > >> > > Alexandre
>
> > > >> > > 2009/10/9 HAUSa <[email protected]>
>
> > > >> > > > Can someone help me with this please?
> > > >> > > > It's really becoming an obstacle in my development process
> > now... :(
>
> > > >> > > > On 8 okt, 21:01, HAUSa <
> > [email protected]>
> > > >> > > > wrote:
> > > >> > > > > I have this route:
>
> > > >> > > > > user_activate:
> > > >> > > > >   url:     /user/activate/:id
> > > >> > > > >   class:   sfPropelRoute
> > > >> > > > >   options: { model: User, type: object }
> > > >> > > > >   param:   { module: user, action: activate }
>
> > > >> > > > > Now, in the page where that route leads to, I have a form. The
> > > >> form is
> > > >> > > > > being sent to that route again:
> > > >> > > > > <form id="form_user_user_activate"
> > action="/website_dev.php/user/
> > > >> > > > > activate/1" method="post" enctype="multipart/form-data">
>
> > > >> > > > > But, when I post that form, I get this error message:
> > > >> > > > > Fatal error: Call to undefined method sfRoute::getObject() in
> > > >> /home/
> > > >> > > > > snuber/domains/
> > snuber.net/public_html/apps/website/modules/user/
> > > >> > > > > actions/actions.class.php on line 30
>
> > > >> > > > > It is still the very same URL! The route should work,
> > shouldn't
> > > >> it?
>
> > > >> > > --
> > > >> > > Alexandre Salomé -- [email protected]
>
> > > --
> > > Alexandre Salomé -- [email protected]
>
> --
> Alexandre Salomé -- [email protected]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to