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

时间:2013-08-23 12:34:16

标签: php symfony twig entity-relationship

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

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

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

我的课程是图库依玛金依玛金有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 %}

...并且在图库编辑页面内嵌入图像的结果是正确的,效果很好 enter image description here

现在,我要做的是在同一个li标签中显示另一个依玛金字段,让我们说 imageName 。 我尝试了很多方法,但我无法做到......

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

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

所以,你需要实现一个新的表单类,调用它你喜欢的,例如。图像类型()。在该类类型中添加您需要显示的任何表单类型(属性),例如

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

您可以从twig代码中迭代并显示它。

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