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
-~----------~----~----~----~------~----~------~--~---

Reply via email to