【问题标题】:Check if a Entity Field Type returns a value in Twig检查实体字段类型是否在 Twig 中返回值
【发布时间】:2023-03-30 07:04:01
【问题描述】:

我的表单中有一个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,如果你没有变量名,你仍然可以循环你的结果,然后检查空值。

标签: symfony twig symfony-forms


【解决方案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...
    猜你喜欢
    • 2012-05-07
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多