我有一个Doctrine实体的Symfony 2表单,其中包含ManyToMany关系的实体选择字段。选择字段可能没有任何选择 - 如何在Twig中测试?
示例:表单用于“Deal”实体,可以选择将其分配给“Location”实体。我像这样渲染“位置”实体字段:
{{ form_label(edit_form.locations) }}
{{ form_errors(edit_form.locations) }}
{{ form_widget(edit_form.locations) }}
该字段设置为使用复选框进行渲染。但是,可能不存在“位置”记录。在这种情况下,用户将看到标签“位置:”但没有复选框。我想有一个显示消息的条件语句,类似于:
{{ form_label(edit_form.locations) }}
{{ form_errors(edit_form.locations) }}
{{ form_widget(edit_form.locations) }}
{% if edit_form.locations.choices|length == 0 %}
You haven't created any Locations yet!
{% endif %}
有人知道实现这个目标的方法吗?
答案 0 :(得分:3)
只是为了帮助别人...
在较新的版本中,它将是:
{% if edit_form.locations.vars.choices|length == 0%}
我实际上是想这样做,所以我会分享:
如果您有一个嵌入式表单,并且您希望执行相同类型的检查,除非从原型中提取数据(如果表单未使用任何子表单生成)
{% if form.childForms.vars.prototype.field.vars.choices|length == 0 %}
" childForms"是嵌入式表单类型和"字段"作为你想要选择的选择领域......
答案 1 :(得分:0)
找到它:
{% if edit_form.locations.get('choices')|length == 0 %}