Попытка сбросить поле перед сохранением, используя offsetUnset () - PullRequest
1 голос
/ 07 марта 2011

Я пытаюсь сбросить поле перед сохранением, именно в функции executeCreate (), сгенерированной sf. Я использую это:

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

Но после этого поле "клиенты" все еще там:

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

Есть идеи?

sf 1.4

1011 * Javi *

1 Ответ

0 голосов
/ 10 марта 2011

Вы можете удалить поля формы в классе формы, настроить метод:

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

Это удаляет поля из формы и из запроса SQL, сгенерированного для сохранения этой формы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...