我有3个相关的数据库表(库存,销售,sale_details ),我希望能够制作一个可以处理创建销售的表格。
问题出在我的自定义字段“ InventoryType ”上,该字段应正确映射到数据库中的实体。
注意:库存唯一地存储在其序列号上。
我创建了3种自定义字段类型,分别是“ InventoryType,SaleDetailsType,SaleType ”,
InventoryType 保存的数据等于库存表和(Inventory.php实体)
SaleDetailsType 包含一个 InventoryType ,
SaleType 包含 SaleDetailsTypes ,帐户信息等的集合。
我尝试使用 InventoryToSerialNumberTransformer 文件将序列号转换为库存,以便InventoryType字段仅包含序列号。
// src/Form/Type/InventoryType.php
$builder->add('serialNumber', TextType::class, ['label' => 'Serialnumber'])
// src/Form/Type/SaleDetailsType.php
$builder->add('Inventory', InventoryType::class, ['label' => 'Inventory item']);
// src/Form/Type/SaleType.php
$builder->add('account', EntityType::class, [ 'class' => Account::class ])
->add('shop', EntityType::class, [ 'shop' => Shop::class ])
->add('saledetails', CollectionType::class, [ 'entry_type' => SaleDetailsType::class,
'entry_options' => ['label' => false],
'allow_add' => true ])
->add('save', SubmitType::class, ['label' => 'Create Sale!']);
{{ form_start(form) }}
{{ form_row(form.account) }}
{{ form_row(form.shop) }}
<h3>Saledetails</h3>
<ul class="saledetails">
{% for detail in form.saledetails %}
{% for inventory in detail %}
<li> {{ form_row(inventory.serialNumber) }}</li>
{% endfor %}
{% endfor %}
</ul>
{{ form_row(form.save) }}
{{ form_row(form._token) }}
预期的行为:
通过客户端JavaScript添加与symfony使用的格式相同的列表项时(已经完成并且可以正常使用),应该仅从序列号中正确插入“清单”。