覆盖symfony无线电小部件

Has*_*ast 3 php forms symfony symfony-2.1

默认单选小组件创建以下结构:

<label>...</label>
<div id="...">
<div class="clearfix prettyradio labelright  blue">
<input type="radio" id="..._0" name="..." value="..." style="display: none;">
<a href="#" class=""></a>
...
</div>
Run Code Online (Sandbox Code Playgroud)

我找到了radio_widget块,但它本身只包含一个输入.所以我只能在那里定制这个部分:

<input type="radio" id="..._0" name="..." value="1" style="display: none;">
Run Code Online (Sandbox Code Playgroud)

但我无法理解如何改变整个无线电选择领域的结构?

另外,有人知道,为什么symfony在输入中添加display:none?

谢谢.

Ahm*_*ani 7

如果您正在使用无线电字段类型,您可以通过调用仅自定义块的input一部分,它显示的是,radio_widgetform_widget(form.yourField)

{% block radio_widget %}
{% spaceless %}
    <input type="radio" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
{% endspaceless %}
{% endblock radio_widget %}
Run Code Online (Sandbox Code Playgroud)

但是,如果您使用选择字段类型来显示无线电字段(expanded => true and multiple => false).然后,您必须覆盖该choice_widget块,该块调用每个子元素radio_widget由全局包围的块div

你是怎么得到"display:none"的?因为在默认块中没有这样的样式.