gpt4 book ai didi

forms - 有没有办法在 symfony2 中围绕输入包装标签?

转载 作者:行者123 更新时间:2023-12-04 11:12:00 24 4
gpt4 key购买 nike

关于 symfony2 表单组件及其模板的问题:

我有一堆要设置样式的复选框(一个表单行中大约有 10 个)。通常我使用 <label>以这种方式标记:<label><input/> some text</label>但我找不到在表单模板 (form_div_layout.html.twig) 中更改它的方法。我什至找不到在输入小部件及其标签周围包装任何标签的方法,我总是以这样的标记结束:<input/> <some_tag><label>some text</label></some_tag><some_tag><input/></some_tag> <label>some text</label>这不是很有用,至少可以说......

谷歌搜索了很多,但找不到答案。

最佳答案

WhiSTLegreg 是正确的,您将需要覆盖 Twig 表单模板。但是,您不需要删除 {% block generic_label %}堵塞。如果您需要有关如何覆盖模板的帮助,请参阅他的回答。

为了用标签包装复选框输入标签,第一步是覆盖 {% block choice_widget %}阻止并移除 {{ form_label(child) }}来自 {% if expanded %} 的线路打印出单独标签的部分。

{% block choice_widget %}
{% spaceless %}
{% if expanded %}
<div {{ block('widget_container_attributes') }}>
{% for child in form %}
{{ form_widget(child) }}
{# {{ form_label(child) }} <--------------------- remove this line #}
{% endfor %}
</div>
{% else %}
<select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}>
{% if empty_value is not none %}
<option value="">{{ empty_value|trans }}</option>
{% endif %}
{% if preferred_choices|length > 0 %}
{% set options = preferred_choices %}
{{ block('widget_choice_options') }}
{% if choices|length > 0 and separator is not none %}
<option disabled="disabled">{{ separator }}</option>
{% endif %}
{% endif %}
{% set options = choices %}
{{ block('widget_choice_options') }}
</select>
{% endif %}
{% endspaceless %}
{% endblock choice_widget %}

现在您只需要在 {% block checkbox_widget %} 中处理打印标签。堵塞。
{% block checkbox_widget %}
{% spaceless %}
<label for="{{ id }}"><input type="checkbox" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />{{ label|trans }}</label>
{% endspaceless %}
{% endblock checkbox_widget %}

您需要对 {% block radio_widget %} 执行相同的操作因为它现在不会有标签。
{% block radio_widget %}
{% spaceless %}
<label for="{{ id }}"><input type="radio" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />{{ label|trans }}</label>
{% endspaceless %}
{% endblock radio_widget %}

关于forms - 有没有办法在 symfony2 中围绕输入包装标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10815568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com