У меня есть тип формы, как следующее:Объединение полей Symfony2
class TestType extends AbstractType{
public function buildForm(FormBuilderInterface $builder, $options){
$builder->add('type', 'text');
$builder->add('name', 'text');
}
}
Теперь я хочу, чтобы создать тип формы, который имеет два TestType
с в нем, но только один 'type'
поле, которое используется для обоих в TestType
поле, используемое в нем:
class DoubleTestType extends AbstractType{
public function buildForm(FormBuilderInterface $builder, $options){
$builder->add('first', new TestType());
$builder->add('second', new TestType()); // however this will create one type 'field' for each of the SubForms
}
}
Такой подход создаст два TestType
с, каждый из которых имеет индивидуальный 'type'
поля, но я хочу 'type'
поля делится между ними. Один из подходов состоит в том, чтобы создать поле 'type'
в DoubleTestType
и сделать поле type
в TestType
s скрытым и установить их значение с помощью прослушивателя событий, зарегистрированного на DoubleTestType
. Я ищу более чистый способ сделать это.
Это то, что я делаю прямо сейчас, проблема состоит в том, что поле 'TestType' имеет неявное знание своей родительской формы' DoubleTestType', которая не является чистой. – user2268997
А как насчет использования пользовательского поля формы вместо формы? (первая часть моего ответа) – Srdjan
Это уже настраиваемый тип поля. – user2268997