我有一个简单的表单来过滤主题功能列表:
$builder
->add('themes', EntityType::class, array(
'class' => 'XXBundle:Theme',
'choice_label' => 'image',
...
))
->add('save', SubmitType::class)
;
在Twig中我尝试访问所有主题来进行特定渲染,实际上我想显示Image(与每个主题相关:theme.image)而不是主题。
我遵循了其他解决方案:Symfony2 + CreateFormBuilder how to render an image in a form
但它不起作用:
form.vars.value.themes / form.vars.data.themes (or form.themes.vars.value / form.themes.vars.data this is the same)
存在但始终为空。因为这是一种新形式。如果我提交表单,它就会运行form.vars不再是空的。
第一次显示表单时如何获取主题?我跟着文档(http://symfony.com/doc/current/reference/forms/twig_reference.html#form-variables-reference),但我找不到我想要的东西。
TY
答案 0 :(得分:1)
基本上,EntityType是一个选择列表 - form.themes.vars.choices。它是一个ChoiceView数组,用于获取实体只需访问公共数据属性。
因此,请使用此属性访问实体:
form.themes.vars.choices
更易于访问的属性列在文档here中。
希望这个帮助