Hey Robert-

I don't see any reason that there would be a different behavior between
unset($this['my_field']) and unset($form['this_field']) - the method should
fully work from outside of the class. How are you verifying that the widget
and validator still exist in the form after unsetting? The unsetting on
sfForm already works just as you'd expect it to.

Thanks

Ryan Weaver
Lead Programmer Iostudio, LLC
http://www.sympalphp.org
http://www.thatsquality.com
Twitter: @weaverryan


On Mon, Sep 20, 2010 at 3:56 AM, Daniel Lohse
<[email protected]>wrote:

> That's because you only have a sfFormFieldSchema in the view and you should
> not be able to mingle with form logic in the view!
>
> So, this is or was a design decision of the form framework — and rightly
> so!
>
>
> Cheers, Daniel
>
> Sent from my iPad
>
> On Sep 20, 2010, at 10:29 AM, Robert Schoenthal <[email protected]>
> wrote:
>
> > @RAPHAEL,
> >
> > i tried it as follows:
> >
> >    $widgetSchema = $this->form->getWidgetSchema();
> >    $validatorSchema = $this->form->getValidatorSchema();
> >
> >    unset($widgetSchema['foo']);
> >    unset($validatorSchema['foo']);
> >
> >    $this->form->setWidgetSchema($widgetSchema);
> >    $this->form->setValidatorSchema($validatorSchema);
> >    $this->form->resetFormFields();
> >
> > but no, it wont work :(
> >
> > @Ryan:
> >
> > it tried it both ways, using sfFormFieldSchema::offsetUnset throws a
> > "read only" exception, and unset($form['foo']) simply does nothing,
> > the widget and validator still exists in the schemas.
> >
> > why is the sfFormFieldSchema is throwing an exception on unsetting
> > fields through ::offsetUnset. I think it cant be very complicated the
> > remove widgets and validators after instanciating? or am i missing
> > something fundamental?
> >
> > But i think there must be a way to achieve this, if i am able to do
> > "unset($this['foo']);" why not "unset($form['foo']);" and why the form
> > frameworks prevents it through sfFormFieldSchema::offsetUnset?
> > Too many questions left :(
> >
> > Greetz
> > Robert
> >
> > On 20 Sep., 00:04, RAPHAEL <[email protected]> wrote:
> >> To remove widgets from outside of the form class, one way could be:
> >>   $widgets = $form->getWidgetFormSchema();
> >>   unset($widgets['myfield']);      // and all other fields
> >>   $validators = $form->getValidatorSchema();
> >>   unset($validators['myfield']);      // and all other fields
> >>   // maybe add, after having unset all the fields:
> >>   $form->resetFormFields();
> >>
> >> I think that this should work (to be verified). It is however only a
> >> workaround for doing it within the form class (or in a subclass of it,
> >> in the configure() method).
> >>
> >> The sfFormFieldSchema stuff (to which the ArrayAccess stuff in the
> >> form class is linked to) is a sfForms-internal thing that has is own
> >> rules by when its data does exists and/or is valid. The reference are
> >> still the widget and validator schemas.
> >>
> >> Hope that helps, RAPHAEL
> >
> > --
> > 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 developers" group.
> > To post to this group, send email to [email protected]
> > To unsubscribe from this group, send email to
> > [email protected]<symfony-devs%[email protected]>
> > For more options, visit this group at
> > http://groups.google.com/group/symfony-devs?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 developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]<symfony-devs%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/symfony-devs?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 developers" 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-devs?hl=en

Reply via email to