Patter, can you show me your removeEmbedded ? Thanks
Att, Pedro Casado On Thu, Mar 5, 2009 at 7:49 PM, isleshocky77 <[email protected]>wrote: > > Patter, > So I just updated my plugin which is using a lot of this. I think > what I ended up doing is actually pretty clean. I took some cues from > what you said as far as the updateObject, but I didn't need to make an > embeddedForm function because I'm deleting the object there. You can > check out the full class in trac. With the way it's done here I don't > have to have anything in the action which is how it was being done > before. > > > http://trac.symfony-project.org/browser/plugins/sfDoctrineUserPlugin/branches/1.2/modules/sfUserAdvancedUser/lib/form/sfUserAdvancedUserForm.class.php > > The meat of it is in the two last protected functions. > > -- > Stephen Ostrow <[email protected]> > > On Feb 16, 4:41 am, patter <[email protected]> wrote: > > Hi Stephen, > > yes I mailed you :-). I have used User just for example and my form is > > more complicated. Let say a UserObject have one FamilyObject and this > > FamilyObject have one or two ParentsObjects. So in UserForm is > > embedded FamilyForm with embedded FamilyForms (something like this - > > three levels of embedding) > > > > I have a solution , but I'm not sure if it is the best one. > > > > It is easy to unset an embedded form for the form class itself: > > > > unset($this->embeddedForms('formName'); > > > > but because it is private property it is not possible from outside the > > form. > > I have created a new form class which extends the base sfForm and this > > class adds one public method - removeEmbedded($name). > > Now I can use: > > > > $embedded = $form->getEmbeddedForms(); > > $embedded['relations']->removeEmbedded($name); > > > > I do this in updateObject() because it is called after the form is > > validated and everything is o.k. > > If I do this in bind() method and the form is not valid it will not be > > shown properly . > > > > On Feb 15, 4:46 pm, jukea <[email protected]> wrote: > > > > > Hi patter, > > > > > What I'd do is unset the embedded form as if ot was any other field. > > > > > if($postedValues[..insert your input name...]=='') > > > unset($subForm['embededFormName']) > > > > > Do this from anywhere before you bind the data. You could also > > > override the bind method in your form, unset the form there, and call > > > the parent method. > > > > > Julien > > > > > On Feb 11, 11:06 am, patter <[email protected]> wrote: > > > > > > Hello, > > > > > > I have a1:n relation: User have two phone numbers (well my real use > > > > case is a bit complicated :-) ). > > > > > > In my UserForm::configure() I have something like this: > > > > > > $p1 = $this->object['phones'][0] = new Phone(); > > > > $p2 = $this->object['phones'][1] = new Phone(); > > > > > > $subForm = new sfForm(); > > > > $subForm->embedForm(0, new PhoneForm($p1 ); > > > > $subForm->embedForm(1, new PhoneForm($p2)); > > > > > > $this->embedForm('phones', $subForm); > > > > > > This works perfect. I can add a new User with 2 phones. > > > > > > The problem is that if the user doesn't provide information for > second > > > > phone I should not insert a blank record (in fact I can't because of > > > > not null fields). > > > > > > I have read a lot of articles but I'm not able to find solution yet. > > > > > > I think that I have to use UpdateObject() method to remove unwanted > > > > relation, but if this is the better solution ? > > > > > > I use Doctrine :-) > --~--~---------~--~----~------------~-------~--~----~ > 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]<symfony-users%[email protected]> > For more options, visit this group at > http://groups.google.com/group/symfony-users?hl=en > -~----------~----~----~----~------~----~------~--~--- > > -- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com 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 To unsubscribe, reply using "remove me" as the subject.
