【发布时间】:2018-04-24 18:13:31
【问题描述】:
我知道如何在一个实体中编辑数据,但我需要在单个页面上编辑更多实体,使用单个提交按钮。最好的选择是什么?更具体地说:我列出了一个购物车,我想同时编辑每一行(购物车实体)的“数量”字段
我知道我必须以某种方式生成表单,如果我为每一行都有“更新”按钮,我知道该怎么做,但它必须看起来像给定的屏幕截图。
【问题讨论】:
标签: php forms symfony controller twig
我知道如何在一个实体中编辑数据,但我需要在单个页面上编辑更多实体,使用单个提交按钮。最好的选择是什么?更具体地说:我列出了一个购物车,我想同时编辑每一行(购物车实体)的“数量”字段
我知道我必须以某种方式生成表单,如果我为每一行都有“更新”按钮,我知道该怎么做,但它必须看起来像给定的屏幕截图。
【问题讨论】:
标签: php forms symfony controller twig
您正在寻找的是 Symfony 的 Form Collections。表单集合允许您一次添加和/或编辑多个实体。查看文档中的Tags 示例,其中显示了如何使用add/update/delete 标记。您需要为您的购物车执行几乎相同的操作。
【讨论】:
以 formType 字段为例:
假设您想混合两个实体客户端,它们与另一个实体 MixedEntity 有关系,那么您可以执行以下操作
$builder->add('clientName',TextType::class,array(
'label'=> false
))
.....
.....
->add('anOtherField',TextType::class,array(
'label'=> false))
->add('MixedEntity', new MixedEntityType(),array(
));
你可以在你的实体关系中设置cascade={"persist"}
在树枝上:
{{ form_row(form.MixedEntity.field, { 'attr': {'class': 'CssClass'} }) }}
symfony 文档: https://symfony.com/doc/current/reference/forms/types/form.html
【讨论】: