php – 将角色分组到Sonata表单中的一个复选框

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 将角色分组到Sonata表单中的一个复选框脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Sonata面板中有一个表单,可以将角色设置为一个

php – 将角色分组到Sonata表单中的一个复选框

我希望在复选框中使用相同的角色字段,因此我添加了’expanded’=>对我的领域真实

PRotected function configureFormFields(FormMapPEr $formMapper)
{
    $formMapper
        ->add('name')
        ->add('roles',SecurityRolesType::class,[
            'expanded' => true,])
    ;
}@H_126_12@ 
 

但我明白了

php – 将角色分组到Sonata表单中的一个复选框

我正在尝试将此角色ROLE_ADMIN_USER_EDIT,ROLE_ADMIN_USER_LIST …分组到ROLE_ADMIN_USER

我尝试了一些我在这里找到的选项:http://symfony.com/doc/current/reference/forms/types/choice.html但没有任何效果

如何将此角色分组,如我的第一个屏幕截图,但有复选框?

谢谢

解决方法

为此,您需要覆盖Sonata base_edit_form_macro模板并更改认渲染

{# If field name is `roles` then override classic extended multiple select #}
{% if field_name == 'roles' %}
    <div class="form-group">
        {# Render form field name #}
        <label for="roles_field"
               class="col-sm-3 control-label"
        >
            {{ field_name|capitalize }}
        </label>
        <div id="roles_field"
             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>
                    <b>{{ label }}</b>
                </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 %}
        </div>
    </div>
{% else %}
    {{ form_row(form[field_name])}}
{% endif %}

然后角色表单将显示如下

php – 将角色分组到Sonata表单中的一个复选框

脚本宝典总结

以上是脚本宝典为你收集整理的php – 将角色分组到Sonata表单中的一个复选框全部内容,希望文章能够帮你解决php – 将角色分组到Sonata表单中的一个复选框所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。