检查实体字段类型是不是在 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 中返回值的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis数据库连接的基本使用-补充

Gson空值映射问题,当实体类字段不全Gson的映射

C# 比较两个对象的属性值是不是有改变

把一个实体类作为一个字段的类型怎么给这个字段赋值

在 Twig 中解码 JSON

mybatis 查询数据库返回值某字段是 List 该怎么搞