gpt4 book ai didi

forms - Symfony2 : preventing radio widgets from rendering labels

转载 作者:行者123 更新时间:2023-12-04 17:26:29 25 4
gpt4 key购买 nike

我正在尝试在 symfony2 中使用 Twig 自定义表单布局。我的目标是渲染一个看起来像这样的 radio 输入......

<label class=" required">Label name</label>
<span class="form-radio">
<input type="radio" name="album_has_subalbums_1" /> Yes
</span>
<span class="form-radio">
<input type="radio" name="album_has_subalbums_0" /> No
</span>

我已经覆盖了 radio_widget阻止我的自定义表单主题如下
{% block radio_widget %}
{% spaceless %}
<span class='form-radio'>
<input type="radio" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
</span>
{% endspaceless %}
{% endblock radio_widget %}

但是,这会呈现以下标记:
<label class=" required">Label name</label>

<span class="form-radio">
<input type="radio" id="album_has_subalbums_1" name="album[has_subalbums]" required="required" value="1">
</span>
<label for="album_has_subalbums_1" class=" required">Yes</label>

<span class="form-radio">
<input type="radio" id="album_has_subalbums_0" name="album[has_subalbums]" required="required" value="0">
</span>
<label for="album_has_subalbums_0" class=" required">No</label>

基本上,对于每个 radio 输入元素,它都会创建一个标签来标识它的值是"is"还是“否”。我正在使用预先存在的设计,因此我无法轻松调整 html 标记。

如何防止 radio 输入将选择文本生成为标签?我知道它叫 field_label在内部阻止,但正如你所看到的我的 radio_widget没有提到它,所以我对如何防止这种行为有点迷茫。

编辑:

需要明确的是,我想要与我的第一个示例相同的结构......我省略了名称和值属性等,但显然它只是为了演示目的。

最佳答案

您需要覆盖的不是 radio_widget阻止,但 choice_widget一:

{% block choice_widget %}
{% spaceless %}
{% if expanded %}
<div {{ block('widget_container_attributes') }}>
{% for child in form %}
{{ form_widget(child) }}
{{ child.get('label') | trans }} {# <- this is what you need #}
{# leave the rest untouched #}

并且不要忘记清除缓存以使此更改生效。

关于forms - Symfony2 : preventing radio widgets from rendering labels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8316739/

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