Symfony 检查实体字段类型是否返回Twig中的值

Symfony 检查实体字段类型是否返回Twig中的值,symfony,twig,symfony-forms,Symfony,Twig,Symfony Forms,我在表单中有一个,如果它返回任何值,我如何签入细枝 实体字段类型: $builder->add('users', 'entity', array( 'class' => 'UserBundle:User', 'query_builder' => function(EntityRepository $er) { return $er->createQueryBuilder('u') }, )); 试试这个: {%if users.o

我在表单中有一个,如果它返回任何值,我如何签入细枝

实体字段类型:

$builder->add('users', 'entity', array(
    'class' => 'UserBundle:User',
    'query_builder' => function(EntityRepository $er) {
        return $er->createQueryBuilder('u')
    },
));
试试这个:

{%if users.options | length>0%}
{users.options%中的选项为%s}
{一些行动}
{%endfor%}
{%endif%}

要检查的正确变量是:
form.users.vars.choices

因此,代码应该是:

{% if form.users.vars.choices|length > 0 %}     
   {# actions #}
{% endif %}

看看这个问题:我已经试过了,问题是我不知道变量的名称…在创建响应或调试所有正在运行的变量时,您可以在控制器中看到变量的名称。查看我在控制器中设置的内容,名称将是form.users,但已尝试但未成功:/@jonfer,如果您不知道变量名,您仍然可以在结果上循环,然后检查空值。给我错误:变量“users”不存在。我已经尝试使用| length>0,问题是我不知道变量的名称。
form.users
没有给出错误,但看起来| length总是0,这意味着您的查询没有找到任何用户。form.users本身基本上只是一个数组,将始终进行设置。查询确实找到了用户,因为select中填充了用户。我不知道为什么长度保持在0。。。