检查实体字段类型是不是在 Twig 中返回值
Posted
技术标签:
【中文标题】检查实体字段类型是不是在 Twig 中返回值【英文标题】:Check if a Entity Field Type returns a value in Twig检查实体字段类型是否在 Twig 中返回值 【发布时间】:2012-06-20 07:41:39 【问题描述】:我的表单中有一个Entity Field Type,如果 Twig 返回任何值,我该如何检查它?
实体字段类型:
$builder->add('users', 'entity', array(
'class' => 'UserBundle:User',
'query_builder' => function(EntityRepository $er)
return $er->createQueryBuilder('u')
,
));
【问题讨论】:
看看这个问题:How to check for null in Twig 我已经尝试过了,问题是我不知道变量的名称... 在创建响应或调试所有变量时,您可以在控制器中看到变量的名称。 查看我在控制器中设置的内容,名称将是 form.users,但已经尝试但没有成功:/ @jonfer,如果你没有变量名,你仍然可以循环你的结果,然后检查空值。 【参考方案1】:要检查的正确变量是:form.users.vars.choices
所以代码是:
% if form.users.vars.choices|length > 0 %
# actions #
% endif %
【讨论】:
【参考方案2】:试试这个:
% if users.options|length > 0 %
% for option in users.options %
# some action #
% endfor %
% endif %
【讨论】:
给我错误:变量“用户”不存在。我已经在尝试 |length > 0,问题是我不知道变量的名称。form.users
没有给出错误,但看起来 |length 始终为 0
这仅仅意味着您的查询没有找到任何用户。 form.users 本身基本上只是一个数组,并且会一直设置。
查询确实找到了用户,因为选择中填充了用户。我不知道为什么长度保持为 0...以上是关于检查实体字段类型是不是在 Twig 中返回值的主要内容,如果未能解决你的问题,请参考以下文章