如果表单字段有标签,如何检查树枝
how to check in twig if a form field has label
当通过迭代生成表单域时:
{% for field in form %}
{{ form_widget(field); }}
{% endform %}
然后它将封装一个 div 块围绕字段的输入类型,以及一个标签(如果它有标签)。
我想把它分成标签和小部件:
<div class="form-group">
{% if field.vars.label is not null %}
{{ form_label(field) }}
{% endif %}
{{ form_widget(field) }}
</div>
但 field.vars.label 始终为空。顺便说一句,当我在没有条件的情况下生成时,它会正确显示标签。
如何获取条件检查的标签值?
提前致谢。
根据表单变量参考doc,
试试:
{% if field.vars.attr.label is not null %}
而不是:
{% if field.vars.label is not null %}
将标签更改为 false,form_label() twig 函数将自动忽略它。
这是 form_div_layout.html.twig 文件中的代码片段(参见第 2 行):
{%- block form_label -%}
{% if label is not same as(false) -%}
{% if not compound -%}
{% set label_attr = label_attr|merge({'for': id}) %}
{%- endif -%}
{% if required -%}
{% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %}
{%- endif -%}
{% if label is empty -%}
{%- if label_format is not empty -%}
{% set label = label_format|replace({
'%name%': name,
'%id%': id,
}) %}
{%- else -%}
{% set label = name|humanize %}
{%- endif -%}
{%- endif -%}
<label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ translation_domain is same as(false) ? label : label|trans({}, translation_domain) }}</label>
{%- endif -%}
{%- endblock form_label -%}
当通过迭代生成表单域时:
{% for field in form %}
{{ form_widget(field); }}
{% endform %}
然后它将封装一个 div 块围绕字段的输入类型,以及一个标签(如果它有标签)。
我想把它分成标签和小部件:
<div class="form-group">
{% if field.vars.label is not null %}
{{ form_label(field) }}
{% endif %}
{{ form_widget(field) }}
</div>
但 field.vars.label 始终为空。顺便说一句,当我在没有条件的情况下生成时,它会正确显示标签。
如何获取条件检查的标签值?
提前致谢。
根据表单变量参考doc,
试试:
{% if field.vars.attr.label is not null %}
而不是:
{% if field.vars.label is not null %}
将标签更改为 false,form_label() twig 函数将自动忽略它。
这是 form_div_layout.html.twig 文件中的代码片段(参见第 2 行):
{%- block form_label -%}
{% if label is not same as(false) -%}
{% if not compound -%}
{% set label_attr = label_attr|merge({'for': id}) %}
{%- endif -%}
{% if required -%}
{% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %}
{%- endif -%}
{% if label is empty -%}
{%- if label_format is not empty -%}
{% set label = label_format|replace({
'%name%': name,
'%id%': id,
}) %}
{%- else -%}
{% set label = name|humanize %}
{%- endif -%}
{%- endif -%}
<label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ translation_domain is same as(false) ? label : label|trans({}, translation_domain) }}</label>
{%- endif -%}
{%- endblock form_label -%}