Symfony 4 输入字段未呈现
Symfony 4 input fields are not rendered
我目前正在努力呈现我的表单类型。
我有一个 Order 实体和 OrderItems 实体,它们都有自己的类型。
订单类型:
<?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/, downloadable on https://packagist.org/packages/ninsuo/symfony-collection 制作了表格。
再次感谢您的帮助。
CollectionType 只给你一个原型
然后,您必须添加 javascript 才能使用此原型并创建您的集合的多种形式
一切都在文档中:https://symfony.com/doc/current/form/form_collections.html#allowing-new-tags-with-the-prototype
我目前正在努力呈现我的表单类型。 我有一个 Order 实体和 OrderItems 实体,它们都有自己的类型。
订单类型:
<?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/, downloadable on https://packagist.org/packages/ninsuo/symfony-collection 制作了表格。
再次感谢您的帮助。
CollectionType 只给你一个原型
然后,您必须添加 javascript 才能使用此原型并创建您的集合的多种形式
一切都在文档中:https://symfony.com/doc/current/form/form_collections.html#allowing-new-tags-with-the-prototype