You need to provide the Profile object that the ProfileForm is bound to. class UserEditForm extends sfGuardUserForm { public function configure() {
parent::configure(); $profileForm = new ProfileForm($this->object->getProfile()); unset($profileForm['id'], $profileForm['sf_guard_user_id']); $this->embedForm('Profile', $profileForm); // Remove all widgets we don't want to show unset( $this['is_active'], $this['is_super_admin'], $this['updated_at'], $this['groups_list'], $this['permissions_list'], $this['last_login'], $this['created_at'], $this['salt'], $this['algorithm'], $this['username'], $this['password'] ); } } On Wed, Dec 10, 2008 at 11:11 AM, Thomas Rabaix <[EMAIL PROTECTED]>wrote: > Please keep in mind that all the form logic should be done inside the form, > the form is self dependant > > So this code should be avoid : > $this->form->setDefaults($this->getUser()->getProfile()); > > you can provide to your UserEditForm the sfUser Object, and then overwrite > the method updateDefaultsFromObject to define the default values. > > > On Wed, Dec 10, 2008 at 6:01 PM, Peter Bowyer <[EMAIL PROTECTED]>wrote: > >> >> Hi, >> >> I have set up sfGuardDoctrine with a separate profile table (as per >> the symfony blog tutorials) and written a user registration form. >> >> However... I now want to write a form where registered users can >> update their profile. I have tried modifying the registration form >> but I cannot get the nested Profile form to be populated. >> >> In my action I currently have: >> $this->form = new UserEditForm($this->getUser()->getGuardUser()); >> $this->form->setDefaults($this->getUser()->getProfile()); >> >> and my UserEditForm looks like: >> -------8<------------ >> class UserEditForm extends sfGuardUserForm >> { >> public function configure() >> { >> >> parent::configure(); >> $profileForm = new ProfileForm(); >> unset($profileForm['id'], $profileForm['sf_guard_user_id']); >> $this->embedForm('Profile', $profileForm); >> >> // Remove all widgets we don't want to show >> unset( >> $this['is_active'], >> $this['is_super_admin'], >> $this['updated_at'], >> $this['groups_list'], >> $this['permissions_list'], >> $this['last_login'], >> $this['created_at'], >> $this['salt'], >> $this['algorithm'], >> $this['username'], >> $this['password'] >> ); >> } >> } >> -------8<------------ >> >> Now I'm guessing I could just edit the ProfileForm directly and >> there's no need to go through the sfGuardUser (despite the two being >> linked) but humour me - is there a way to do it this way? I imagine >> to change the password at the same time this way would need to be >> used anyhow... >> >> Thanks, >> Peter >> >> >> >> > > > -- > Thomas Rabaix > Internet Consultant > > > > > -- Jonathan H. Wage Open Source Software Developer & Evangelist http://www.jwage.com http://www.doctrine-project.org http://www.symfony-project.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@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-users?hl=en -~----------~----~----~----~------~----~------~--~---