Oops, a small typo on the first line: $this->form = new LoginForm(array('login_username' => $request->getParameter('username')));
-- Fabien Potencier Sensio CEO - symfony lead developer http://www.sensiolabs.com/ http://www.symfony-project.com/ Sensio Labs Tél: +33 1 40 99 80 80 Fabien POTENCIER wrote: > Here your example modified to work out of the box: > > class authActions extends sfActions > { > public function executeLogin($request) > { > // allows a username to be passed in the URL as a GET param. > $this->form = new LoginForm(array('login_username' => $username)); > > // if the form was posted... > if ($request->isMethod('post')) > { > $this->form->bind($request->getParameter('login')); > > if ($this->form->isValid()) > { > die('merp'); > } > } > } > } > > and modify your form class like this: > > class LoginForm extends sfForm > { > public function configure() > { > // ... your stuff here > > $this->widgetSchema->setNameFormat('login[%s]'); > } > } > > So, every field is now in an array (and the CSRF field is also there). > As an added bonus, the action does not have field name harcoded. > > Fabien > > -- > Fabien Potencier > Sensio CEO - symfony lead developer > http://www.sensiolabs.com/ > http://www.symfony-project.com/ > Sensio Labs > Tél: +33 1 40 99 80 80 > > > Ian P. Christian wrote: >> Ian P. Christian wrote: >>> Fabien POTENCIER wrote: >>>> Hi Ian, >>>> >>>> As the form framework is new, some comments: >>>> >>>> Don't override the bind() method like this. One of the property of the >>>> new framework is a very clear separation between 3 layers: >>> I am doing that in my action - but the main issue is that unless I bind >> Sorry, should have been a little more specific here.. >> >> My action consists of this: >> >> class authActions extends sfActions >> { >> public function executeLogin($request) >> { >> $form = new LoginForm(); >> >> // allows a username to be passed in the URL as a GET param. >> if ($username = $request->getParameter('login_username')) >> { >> $form->setDefaults( array( 'login_username' => $username)); >> } >> >> // if the form was posted... >> if ($request->isMethod('post')) >> { >> $form->bind( >> array( >> 'login_username' => $request->getParameter('login_username'), >> 'login_password' => $request->getParameter('login_password'), >> )); >> >> if ($form->isValid()) >> { >> die('merp'); >> } >> } >> $this->form = $form; >> } >> } >> >> >> >> But, as that is the form will error becuase of the CSRF field not being >> bound. >> >> As such, I moved that logic into the LoginForm class, as notjosh >> suggseted doing in his blog (also stating that that might well not be >> the right way). >> >> > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "symfony developers" group. To post to this group, send email to symfony-devs@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/symfony-devs?hl=en -~----------~----~----~----~------~----~------~--~---