4

我有一个包含实体类型字段的表单parameters

            ->add('parameters', 'entity', array(
                'class' => 'SPlaceBundle:Parameter',
                'query_builder' => function(ParameterRepository $er)
                {
                    return $er
                            ->createQueryBuilder('s')
                            ->where('s.type = :type1 or s.type = :type2')
                            ->setParameter('type1', 1)
                            ->setParameter('type2', 2)
                            ->orderBy('s.name', 'ASC');
                },
                'property' => 'name',
                'multiple' => true,
                'expanded' => true,
            ))

如您所见,我只显示 type=1 或 type=2 的参数。在渲染模板时,我想在代表不同参数类型的复选框之间放置 hr (或其他东西)。我试图使用 {{ field.get('value').type }} 技巧来获取参数类型:

{% for p in form.parameters %}
    {{ form_widget(p) }} 
    {{ form_label(p) }}
    {{ p.get('value').type }}
    <br>
{% endfor %}

问题是上面{{ p.get('value') }}返回parameter id (int)而不是parameter object. 有没有办法返回对象?

4

1 回答 1

0

它不是很优雅,但您可以在您的选择中连接类型和名称,并将其用作标签。然后,在显示标签时,在分隔符上拆分,您就有了类型和名称。

于 2012-06-29T13:56:23.877 回答