Я пытаюсь добавить некоторые дочерние поля в запись CollectionType
в моей форме.
My CollectionType
является результатом ManyToMany
(OneToMany<=>ManyToOne
между 3 классами) изUtilisateur
и ExtraData
.
ExtraData
класс содержит информацию о том, какой тип полей должен быть добавлен в форму.
Я думал, что установка entry_type
в FormType::class
Позвольте мне добавить любой тип дочерних полей, но похоже, что $builder->get('myCollection')->add('field', Type, $options)
не добавляет мои несопоставленные поля в Collection
Вот мой код:
$builder->add('extraDataCollection', CollectionType::class, array(
'mapped'=>false,
'entry_type'=>FormType::class,
'allow_add'=>false,
));
/** @var ExtraData $extraDatum */
foreach($extraData as $extraDatum) {
if($extraDatum->getType() == 'text') {
$builder->get('extraDataCollection')->add('datum-'.$extraDatum->getId(), TextType::class, array(
'mapped'=>false,
'required'=>$extraDatum->getIsObligatoire(),
'label'=>$extraDatum->getLabel(),
));
} elseif($extraDatum->getType() == 'url') {
$builder->get('extraDataCollection')->add('datum-'.$extraDatum->getId(), UrlType::class, array(
'mapped'=>false,
'required'=>$extraDatum->getIsObligatoire(),
'label'=>$extraDatum->getLabel(),
));
} elseif(...) {...}
}
extraDataCollection
нет детей, что я делаю не так?