问题描述
我正在用 symfony 创建一个网络应用程序。我目前正在构建表单,但由于我从未使用过多对多关系,因此在检索信息时遇到了一些问题。
我正在使用的表格是这样的:
重点是,当我在twig模板中检索数组的信息时,数组中的数据属性显示为空,当创建了Alumne的实体时。让我给你看看。
Twig 模板(创建页面):
如您所见,我假装是检索数组中每个 Alumne 实体的信息。
我这样做的目的是:
校友字段完全是空的。但是,如果我将表单生成器更改为:
(我还对树枝模板进行了一些更改以使其更具可读性) 它有效!
正如你所看到的,创建了一个校友。
重点是,正如您所看到的,它创建的 select 和 option 标签有点丑,我想自定义以便它适合其余的表单。所以这就是为什么我需要在构建器中使用 CollectionType 而我不知道我做错了什么。此外,如果我检查转储(form.alumnes.vars.data)它显示为空。
解决方法
这里的问题是,您使用 CollectionType
而不是 EntityType
。要将数据库中的数据加载到表单中,您应该使用 EntityType
https://symfony.com/doc/current/reference/forms/types/entity.html
如果您不输入类型,Symfony 将尝试猜测要使用的表单元素并(正确)猜测 EntityType