如何使用symfony2和doctrine2

时间:2016-03-04 15:13:58

标签: php forms symfony doctrine-orm

我有一个表单链接到数据库中的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

没有成功。

1 个答案:

答案 0 :(得分:0)

这里的问题似乎是第二个有第三个集合所以你需要迭代form.second.third然后对于每个元素你可以得到" a"元件。我从未以这种方式展示嵌入形式,但你可以尝试类似的东西:

{% for element in form.second.third %}
   {{ form_label(element.a) }}
{% endfor %}

希望这能帮到你