4

我的奏鸣曲管理员中没有出现顶部菜单。菜单仅出现在仪表板中。

我按照以下教程创建了博客功能的后端: http: //sonata-project.org/bundles/doctrine-orm-admin/master/doc/tutorial/creating_your_first_admin_class/introduction.html

我还尝试如下配置 app/config/config.yml

sonata_admin:
    dashboard:
        groups:
            Blog:

但是没有得到预期的结果(即顶部菜单)。

4

3 回答 3

3

从 2.2 版开始,这是一个安全问题。一旦按照文档说明进行了配置,菜单就会正确显示。

更新:ROLE_SONATA_ADMIN此外,根据changelog 上的 2012-06-05 条目,用户必须具有角色。

如果你想在不这样做的情况下对其进行测试,你可以根据这个文件设置一个新的布局模板: https ://github.com/sonata-project/SonataAdminBundle/blob/master/Resources/views/standard_layout.html.twig ,但注释一些与块中的菜单绘图相关的行sonata_top_bar_nav,如下所示:

{% block sonata_top_bar_nav %}
  {#% if app.security.token and is_granted('ROLE_SONATA_ADMIN') %#}
    {% for group in admin_pool.dashboardgroups %}
      {% set display = (group.roles is empty or is_granted('ROLE_SUPER_ADMIN') ) %}
        {% for role in group.roles if not display %}
          {% set display = is_granted(role) %}
        {% endfor %}

        {# Do not display the group label if no item in group is available #}
        {% set item_count = 0 %}
        {% if display %}
          {% for admin in group.items if item_count == 0 %}
            {% if admin.hasroute('list') and admin.isGranted('LIST') %}
              {% set item_count = item_count+1 %}
            {% endif %}
          {% endfor %}
        {% endif %}

        {#% if display and (item_count > 0) %#}
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ group.label|trans({}, group.label_catalogue) }} <span class="caret"></span></a>
            <ul class="dropdown-menu">
            {% for admin in group.items %}
              {#% if admin.hasroute('list') and admin.isGranted('LIST') %#}
                <li><a href="{{ admin.generateUrl('list')}}">{{ admin.label|trans({}, admin.translationdomain) }}</a></li>
              {#% endif %#}
            {% endfor %}
            </ul>
          </li>
        {# % endif %#}
      {% endfor %}
    {#% endif %#}
  {% endblock %}
于 2013-11-24T11:33:26.543 回答
2

You need SONATA_ROLE_ADMIN to show the menu

You can set it in security.yml for ROLE_ADMIN to include it

security:
    ...
    role_hierarchy:
        ...
        ROLE_ADMIN:       [ROLE_USER, ROLE_SONATA_ADMIN]
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
        ...
于 2014-06-10T13:49:26.813 回答
1

yml在文件中导入捆绑config.yml文件。

例子 :

imports:
    - { resource: @yourBundle/Resources/config/admin.yml }

admin.yml看起来像这样:

# website/yourBundle/Resources/config/admin.yml
services:
    sonata.admin.your:
        class: website\yourBundle\Admin\yourAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Content", label: "Contact Management" }
        arguments:
            - ~
            - website\yourBundle\Entity\your
            - ~
        calls:
            - [ setTranslationDomain, [yourBundle]]
于 2013-10-09T10:28:28.380 回答