我在symfony 5下,在一个已经在生产中的应用程序上,我想添加一个屏幕,允许在同一个“POST”消息中同时修改同一个表的几行,使用同一个“发送”按钮。
不同的字段必须包含在一个表单标记中:
<form name="modif_todo_liste" method="post">
...
</form>
我尝试了不同的方法,包括基于同一模板表单创建具有不同视图的表:
foreach($todos as $v){
$form_tab[]=$this->createForm(ModifTodoListeType::class,$v)->createView();
}
我呈现在树枝:
{% for form in form_tab %}
{{ form_start(form) }}
<tr>
<td>{{ form_row(form.Denomination) }}</td>
<td>{{ form_row(form.Nbr) }}</td>
<td>{{ form_row(form.CIS) }}</td>
<td>{{ form_row(form.Label) }}</td>
<td>{{ form_row(form.BN_Label) }}</td>
<td>{{ form_row(form.ATC7) }}</td>
<td>{{ form_row(form.Categorie) }}</td>
</tr>
{{ form_end(form) }}
{% endfor %}
从视觉上看,这符合我的要求,但不可能一次验证所有内容,因为所有行都不包含在同一个表单中:
有没有人知道一种简单的方法,使这种形式,将是“可冲洗”的控制器后?
否则我会做一个更经典的解决方案,我把一个包含整个表的数组传递给twig,在视图中我通过循环数组来构建一个表单,在控制器中我会负责更新。
谢谢你的帮助
2条答案
按热度按时间c0vxltue1#
您可以使用Symfony表单创建包含不同字段的整个表单。您甚至可以将属性直接Map到实体,因此更新是在表单上调用的
handleRequest
方法上进行的。(实体更新后,您仍然需要将其保存到数据库中)Symfony表单文档
如果字段依赖于控制器中的某个数组,您也可以像下面这样在控制器中构建表单。
zour9fqk2#
请尝试以下操作: