He Ryan,

    unset($this->form['foo']);

    $this->form->getWidgetSchema()->offsetExists('foo');    //returns
false
    $this->form->getValidatorSchema()->offsetExists('foo');  //returns
false

Big Facepalm to me, these few lines above in my code, and still
getting no error on "foo" let me write a single encapsulated test for
that.

and see...it worked as expected in my test, so there must be something
wrong with my code.

and debugged my code, and found out that the removal of fields was
called in the wrong place...
I corrected it, and voila it worked as expected...

  /**
   * unsets all fields defined in the configuration
   * call it with:
   * $this->unsetField($form->getWidgetSchema(),$form-
>getValidatorSchema(),$fieldToRemove);
   *
   * @param sfWidgetFormSchema $wschema
   * @param sfValidatorSchema $vschema
   * @param string $field "foo" | "foo/bar" | "foo/bar/bazz"
   */
  protected function unsetField(sfWidgetFormSchema &$wschema,
sfValidatorSchema &$vschema, $field)
  {
    $field = $this->sanitizeFieldName($field);

    if(is_array($field) && $index = array_shift($field))
    {
      if(count($field) && $wschema->offsetGet($index))
      {
        $this->unsetField($wschema[$index],$vschema[$index],$field);
      }
      else
      {
        unset($wschema[$index]);
        unset($vschema[$index]);
      }
    }
    else
    {
      unset($wschema[$field]);
      unset($vschema[$field]);
    }
  }

thats the magic function to unset fields, it works also on embedded
forms...see the "field" parameter (::sanitizeField only splits foo/bar/
bazz into an array ('foo','bar','bazz') if neccesary)

so thanks for all da help, i couldnt think it wont work as i expect
it ;)

greetz
robert

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