0

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

  • 为主要实体创建表单
  • 嵌入关联实体

我已经能够做到以上两点,但现在我无法弄清楚如何检索关联的实体字段。

我的课程是GalleryImmagineImmagine有 3 个属性,imageimageNamefile

在我的 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 %}

...以及在图库编辑页面中嵌入图像的结果是正确的并且效果很好。
在此处输入图像描述

现在,我想做的是显示在同一个 li 标签中,另一个Immagine字段,比如说imageName。我尝试了很多方法,但我无法做到......

有什么建议吗?

4

1 回答 1

0

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

->add('immagini','collection',array('type'=>new ImageType(),'multiple'=>...,))

因此,您需要实现一个新的表单类,将其命名为您喜欢的名称,例如。图像类型()。在该类类型中添加您需要显示的任何表单类型(属性),例如。

->add('imageName','text')
->add(...

比您能够从树枝代码迭代和显示它。

查看基本的表单嵌入文档: http ://symfony.com/doc/current/cookbook/form/form_collections.html

于 2013-08-23T13:38:27.637 回答