3

我正在构建一个表单集合,它输出如下行:

<input type="number" name="order[items][1][qty]">
<input type="number" name="order[items][2][qty]">

但我想做的是有一点:

<input type="number" name="order[items][DB_ID_1][qty]">
<input type="number" name="order[items][DB_ID_2][qty]">

DB_ID_1 将是数据库记录 ID 的数值。所以我可以像这样打印出模板中的每一行:

{{ form.items.1 }}

所以它打印出 ID 为 1 的数据库记录的表单元素,目前它打印出键为 1 的元素,该元素可能具有真实的数据库 ID 为 9

需要更多信息,请告诉我。谢谢

4

2 回答 2

3

我终于在这篇文章的帮助下找到了答案Embedding a collection of forms Symfony2 forms with added and delete allowed

这是一个如此简单的解决方案 - 我找错了地方,我需要在我的自定义类存储库中使用 INDEX BY x.id ,如下所示:

$em->createQuery("SELECT f FROM ExampleCoreBundle:Folder f INDEX BY f.id WHERE f.uid = :uid");

这返回了我的文件夹对象数组,数组的键是文件夹的数据库记录的 id 字段。

这现在可以很好地与我最初想要的表单集合一起使用 - 我很确定这些信息不在网站上的表单集合页面上,所以希望这对未来的其他人有所帮助!

于 2013-05-23T20:50:23.877 回答
1

form您可以使用以下方法访问传递给视图的对象的值:

{% for order in form.orders %}
  {{ order.vars.value.id }}
{% endfor %}

http://symfony.com/doc/current/book/forms.html#rendering-each-field-by-hand

于 2013-05-20T15:48:56.060 回答