我有很多要创建的集合,并且不想为每个entry_type创建FormType,因为它们只使用一次。
因此,我没有在entry_type
选项中提供表单类型FQCN,而是尝试直接从表单构建器中添加一个新的Type
:
$type = $this
->get('form.factory')
->createBuilder(Type\FormType::class)
->add('label', Type\TextType::class, [
'label' => 'Key',
])
->add('value', Type\TextType::class, [
'label' => 'Value',
])
->getType()
;
$form = $this
->get('form.factory')
->createBuilder(Type\FormType::class)
->add('hash', Type\CollectionType::class, [
'entry_type' => $type,
'entry_options' => [],
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'required' => false,
'delete_empty' => true,
])
->getForm()
;
但由于某些原因,原型无效:
<div class="form-group">
<label class="control-label required">__name__label__</label>
<div id="form_hash___name__"></div>
</div>
我手动创建的$type
中的所有子字段都缺失了。我的错误在哪里?