Symfony: добавление виджетов в уже определенную форму - PullRequest
0 голосов
/ 19 июля 2011

Я хотел бы добавить виджеты (флажки) в уже определенной форме (с помощью метода configure).

Я не могу добавить их в определение формы, потому что количество виджетов варьируется (в зависимости от объекта).

Я вижу два способа сделать это:

Либо передайте переменную в метод configure формы, либо используйте встроенные формы.

Но какой из них правильный? Есть ли другое решение?

Спасибо

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Я согласен с Доном Пинкстером в отношении опции передачи и использую ее для настройки формы в методе configure ().

Но если вам это нужно или вы не можете получить значение при создании экземпляра класса, вы можете использовать его из любого места:

$form->getWidgetSchema()->offsetSet($name, $widget);
$form->getValidatorSchema()->offsetSet($name, $validator)

Тот факт, что вы используете встроенные формы или виджет, не сильно изменится, как вы можете сделать это после первоначальной настройки формы:

$form->embedForm($name, $form2);

Только для одного флажка я не вижу преимуществ в использовании встроенной формы. В обоих случаях я предлагаю вам сделать это в открытом методе из класса вашей формы, чтобы избежать взрыва конфигурации формы в классе действия или где-либо еще.

С уважением,

1 голос
/ 19 июля 2011

Правильный путь - передать объект прямо в опции.В форме вы можете использовать метод $this->getOption для получения переданных опций.

...