我正在尝试显示展开的实体字段类型,并将多个设置为true。但是,我想显示实体的其他属性。这与Symfony2 : accessing entity fields in Twig with an entity field type类似,但该解决方案对我没有用。我收到错误:“”的项目“代码”不存在。
如何访问实体的其他属性(本例中为颜色)?
这是我到目前为止所做的:
$builder->add('colors', 'entity', array(
'class' => 'PrismPortalCommonBundle:Color',
'property' => 'code',
'expanded' => true,
'multiple' => true,
));
并在树枝模板中:
{% for color in form.colors %}
<tr>
<td>{{ form_widget(color) }}</td>
<td>{{ color.vars.data.code }}</td>
</tr>
{% endfor %}
答案 0 :(得分:0)
在Symfony 2.5中 - 您可以通过使用子索引值访问每个选项中的数据来实现此目的。
在表单构建器中 - 正如您所料:
public function buildForm(FormBuilderInterface $builder, array $options)
{
// Generate form
$builder
->add('child', 'entity', array(
'class' => 'MyBundle:Child',
'label' => 'Children',
'property' => 'any_property_for_label',
'expanded' => true,
'multiple' => true
));
}
在Twig模板中:
{{ form_start(form) }}
{% for child in form.child %}
{% set index = child.vars.value %}{# get array index #}
{% set entity = form.child.vars.choices[index].data %}{# get entity object #}
<tr>
<td>{{ form_widget(child) }}</td>{# render checkbox #}
<td>{{ entity.name }}</td>
<td>{{ entity.email }}</td>
<td>{{ entity.otherProperty }}</td>
</tr>
{% endfor %}
{{ form_end(form) }}