开发者

Trying to unset a field before saving it, using offsetUnset()

I'm trying to unset 开发者_运维问答a field before saving it, exactly in the executeCreate() function generated by sf. I'm using this:

$this->configuration->getForm()->getWidgetSchema()->offsetUnset('clients');
var_dump($this->configuration->getForm()->getWidgetSchema());

But after that the field "clients" is still there:

object(sfWidgetFormSchema)[180]
  protected 'formFormatters' => 
    array
      empty
  protected 'fields' => 
    array
      'id' => 
        object(sfWidgetFormInputHidden)[211]
          protected 'parent' => 
            &object(sfWidgetFormSchema)[180]
          protected 'requiredOptions' => 
            array
              ...
          protected 'attributes' => 
            array
              ...
          protected 'options' => 
            array
              ...
      'name' => 
        object(sfWidgetFormInputText)[212]
          protected 'parent' => 
            &object(sfWidgetFormSchema)[180]
          protected 'requiredOptions' => 
            array
              ...
          protected 'attributes' => 
            array
              ...
          protected 'options' => 
            array
              ...
      'clients' => 
        object(sfWidgetFormInputText)[184]
          protected 'parent' => 
            &object(sfWidgetFormSchema)[180]
          protected 'requiredOptions' => 
            array
              ...
          protected 'attributes' => 
            array
              ...
          protected 'options' => 
            array
              ...
      '_csrf_token' => 
        object(sfWidgetFormInputHidden)[203]
          protected 'parent' => 
            &object(sfWidgetFormSchema)[180]
          protected 'requiredOptions' => 
            array
              ...
          protected 'attributes' => 
            array
              ...
          protected 'options' => 
            array
              ...

Any idea?

sf 1.4

Javi


You can unset form fields at form class, method configure:

class ClientsForm extends BaseClientsForm
{
    public function configure()
    {
        unset($this['field1'], $this['field2']);
    }
}

This removes field from form and from SQL query generated for saving this form

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜