我有一个表单链接到数据库中的3个表。
第一张表格可以访问第二张表格,该表格可以访问第三种表格的类型。
它的工作方式如下:
firstType具有以下结构
$builder->add('second', new secondType())
secondType具有以下
$builder->add('third', 'collection', array(
'type', new thirdType(),
'allow_add' => true,
'by_reference' => false,
))
第三种类型:
$builder->add('a')->add('b')
当然firstType和secondType有更多元素,firstType通过onetoone映射与secondType链接,secondtype通过onetomany映射与thirdtype链接。
上面的结构是这样我可以映射第三个表的许多实例和1个第二个实例。现在我遇到的问题是我无法以树枝形式访问第三个表格。我得到的错误是
方法" a" for object" Symfony \ Component \ Form \ FormView"在第120行的x.html.twig中不存在
我试图像这样访问它:
{{ form_label(form.second.third.a) }}
相同的格式适用于第二种元素。例如
{{ form_label(form.second.a_2) }}
我试图效仿:
http://symfony.com/doc/2.7/cookbook/form/form_collections.html http://symfony.com/doc/2.7/reference/forms/types/collection.html
没有成功。
答案 0 :(得分:0)
这里的问题似乎是第二个有第三个集合所以你需要迭代form.second.third然后对于每个元素你可以得到" a"元件。我从未以这种方式展示嵌入形式,但你可以尝试类似的东西:
{% for element in form.second.third %}
{{ form_label(element.a) }}
{% endfor %}
希望这能帮到你