为此,您需要覆盖Sonata base_edit_form_macro模板并更改默认渲染
{# If field name is `roles` then override classic extended multiple select #}
{% if field_name == 'roles' %}
{# Render form field name #}
class="col-sm-3 control-label"
>
{{ field_name|capitalize }}
class="sonata-ba-field col-sm-9 sonata-ba-field-standard-natural"
>
{# Render each groups role #}
{% for label, choices in form.roles.vars.choices %}
{# Render group role name #}
{{ label }}
{# Render each roles of a group #}
{% for key, choice in choices %}
{{ form_widget(form.roles.children[key]) }}
{{ form_label(form.roles.children[key]) }}
{% endfor %}
{% endfor %}
{% else %}
{{ form_row(form[field_name])}}
{% endif %}
然后角色表单将显示如下