Jam*_*all 5 forms radio-button symfony twig
我正在尝试使用symfony2中的Twig自定义表单布局.我的目标是渲染看起来像这样的无线电输入......
<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>
Run Code Online (Sandbox Code Playgroud)
我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 %}
Run Code Online (Sandbox Code Playgroud)
但是,这会呈现以下标记:
<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>
Run Code Online (Sandbox Code Playgroud)
基本上,对于每个无线电输入元素,它创建一个标签来识别它的值是"是"还是"否".我正在使用预先存在的设计,所以我不能轻易地调整html标记.
如何防止无线电输入将选择文本生成为标签?我知道它在field_label内部调用了块,但是你可以看到我radio_widget没有引用它,所以我有点迷失了如何防止这种行为.
编辑:
要清楚,我想要与我的第一个例子相同的结构......我遗漏了名称和值属性等,但显然它仅用于演示目的.
Eln*_*mov 10
你需要覆盖的不是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 #}
Run Code Online (Sandbox Code Playgroud)
并且不要忘记清除缓存以使此更改生效.
| 归档时间: |
|
| 查看次数: |
4847 次 |
| 最近记录: |