Php Symfony2嵌入表单-获取实体字段

Php Symfony2嵌入表单-获取实体字段,php,symfony,twig,entity-relationship,Php,Symfony,Twig,Entity Relationship,我有一个具有多对多关联的实体。 我想做的是: 为主实体创建表单 嵌入关联的实体 我已经能够做到以上两点,但现在我无法找出如何检索关联的实体字段 我的课程是Gallery和ImmagineIMAGINE有3个属性,图像、图像名称和文件 在GalleryType buildForm函数中,我执行以下操作: ->add('immagini', 'entity', array( 'class' => 'MySiteBundle:Immagine', 'property' =>

我有一个具有多对多关联的实体。
我想做的是:

  • 为主实体创建表单
  • 嵌入关联的实体
我已经能够做到以上两点,但现在我无法找出如何检索关联的实体字段

我的课程是Gallery和ImmagineIMAGINE有3个属性,图像图像名称文件

在GalleryType buildForm函数中,我执行以下操作:

->add('immagini', 'entity', array(
  'class' => 'MySiteBundle:Immagine',
  'property' => 'image',
  'multiple' => true,
  'expanded' => true
))  
现在,在我的edit.html.twig模板中,如果我写这个

{% for img in edit_form.immagini %}
  <li>
    {{ form_widget(img, {'attr': {'style': 'vertical-align: top'}} ) }}
    {{ form_label(img, null,  { 'label_attr': {'style': 'display: inline'}} ) }}
  </li>
{% endfor %}
{%for img in edit_form.immagini%}
  • {{form_小部件(img,{'attr':{'style':'vertical align:top'}}}}} {{form_label(img,null,{'label_attr':{'style':'display:inline'}}}}}
  • {%endfor%}
    …而且在库编辑页面中嵌入图像的结果是正确的,效果很好。

    现在,我要做的是在同一个li标记中显示另一个Immagine字段,比如imageName。 我试过很多方法,但我都做不到


    有什么建议吗?

    您应该使用集合类型嵌入关联的实体,而不是像您那样使用实体类型

    ->add('immagini','collection',array('type'=>new ImageType(),'multiple'=>...,))
    
    因此,您需要实现一个新的表单类,可以随意调用它,例如ImageType()。在该类类型中,添加您需要显示的任何表单类型(属性),例如

    ->add('imageName','text')
    ->add(...
    
    这样您就可以从细枝代码中迭代并显示它了

    查看基本表单嵌入文档:

    …不,它不起作用。如果formBuilder中没有多个选项,它将显示单个Immagine的形式,而多个选项则表示“我”不存在。我不能调用entity方法来检索属性吗?