问题描述
我目前正在努力处理我的表单类型的呈现。 我有一个Order实体和OrderItems实体,它们都有自己的Type。
OrderType:
<?php
namespace App\Form;
...
class OrderType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder,array $options)
{
$builder
->add('customerName',TextType::class,['label' => 'Jméno a příjmení'])
...
->add('orderItems',CollectionType::class,[
'entry_type' => OrderItemType::class,'required' => true,//'multiple' => true,'allow_add' => true,'prototype' => true,'by_reference' => false,])
...
}
...
}
无论如何,表单字段不会呈现。我正在使用{{ form_row(form.orderItems) }}
,它呈现如下:
<div><label class="required">Order items</label><div id="order_orderItems" data-prototype="<div><label class="required">__name__label__</label><div id="order_orderItems___name__"><div><label for="order_orderItems___name___cake" class="required">Dort</label><select id="order_orderItems___name___cake" name="order[orderItems][__name__][cake]"><option value="1">Vanilkový dort</option><option value="2">Amazing cake</option></select></div><div><label for="order_orderItems___name___quantity" class="required">Množství</label><input type="number" id="order_orderItems___name___quantity" name="order[orderItems][__name__][quantity]" required="required" /></div></div></div>"></div></div>
我可以在原型中看到表单,但是我看不出为什么它不呈现。
有人可以帮助我吗? 谢谢。
//编辑
在Thomas Bredillet回答之后,我确保我认为CollectionType会有所不同。
我使用https://symfony-collection.fuz.org/symfony3/(可从https://packagist.org/packages/ninsuo/symfony-collection下载)来使表单工作。
再次感谢您的帮助。
解决方法
CollectionType只给您一个原型
然后,您必须添加javascript才能使用此原型并创建收藏集的多种形式
所有内容都在文档?中:https://symfony.com/doc/current/form/form_collections.html#allowing-new-tags-with-the-prototype