SonataAdmin,在左边添加菜单

时间:2014-08-05 14:56:21

标签: symfony sonata-admin

我正在研究Symfony2和SonataAdminBundle。

我需要知道如何在信息中心的左侧添加菜单?就像在屏幕上一样:

enter image description here

我需要在页面的左侧部分显示仪表板块(在屏幕上显示为深灰色)..我该怎么做?

你可以在SonataAdmin http://demo.sonata-project.org/admin/dashboard的演示中看到,登录管理员,apssword admin

6 个答案:

答案 0 :(得分:8)

http://blog.eike.se/2014/03/custom-page-controller-in-sonata-admin.html

这篇文章帮助了我。

扩展模板

vendor/sonata-project/admin-bundle/Resources/views/standard_layout.html.twig

覆盖块

{% extends 'SonataAdminBundle::standard_layout.html.twig' %}
{% block side_bar_after_nav %}
YOUR CUSTOM MENU
{% endblock %}

答案 1 :(得分:7)

我刚刚在security.yml中将ROLE_SONATA_ADMIN添加到ROLE_ADMIN:

security:
    role_hierarchy:
        ROLE_ADMIN:       [ROLE_USER, ROLE_SONATA_ADMIN]

它最终显示出来。有关详情,请查看:https://github.com/sonata-project/SonataAdminBundle/issues/2321

答案 2 :(得分:6)

要做的第一件事是在此路径中打开此文件:

\ wamp \ www \ YourProject \ vendor \ sonata-project \ admin-bundle \ Resources \ view \ standard_layout.html.twig

然后查找:ROLE_SONATA_ADMIN(使用Ctrl + F)然后更改为您用来登录管理仪表板的角色我正在使用ROLE_ADMIN,然后保存文件,关闭它,检查你的管理仪表板,你会找到你想要的。

希望它能起作用

答案 3 :(得分:2)

好吧,如果您想使用奏鸣曲生成的自动菜单,您可以使用以下步骤来达到这一点:

<强>解决方案

  1. 覆盖config.yml

    的默认奏鸣曲布局树枝文件
    sonata_admin:
        templates:
            layout:                         ::layout.html.twig
    
  2. 您的::layout.html.twig

    {% extends 'SonataAdminBundle::standard_layout.html.twig' %}
    
    {% block side_bar_nav %}
        {{ knp_menu_render('sonata_admin_sidebar', {template: sonata_admin.adminPool.getTemplate('knp_menu_template')}) }}
    {% endblock %}
    
  3. 为何选择此解决方案?

    由于默认SonataAdminBundle::standard_layout.html.twig检查用户是否具有ROLE_SONATA_ADMIN权限(并且您可能不使用sonata user bundle),因此您需要覆盖权限检查过程,默认情况下:< / p>

    {% block side_bar_nav %}
        {% if app.user and is_granted('ROLE_SONATA_ADMIN') %}
            {{ knp_menu_render('sonata_admin_sidebar', {template: sonata_admin.adminPool.getTemplate('knp_menu_template')}) }}
        {% endif %}
    {% endblock side_bar_nav %}
    

    我认为这是在左侧边栏上使用导航按钮的最简单方法。

答案 4 :(得分:0)

好吧,

似乎他们更新了sonata admin bundle doc,

看看这个=&gt; http://sonata-project.org/bundles/admin/master/doc/reference/architecture.html

或使用用户捆绑包:

http://sonata-project.org/bundles/user/master/doc/reference/user_dashboard.html

希望它能起作用

答案 5 :(得分:0)

做两件事:

  1. 在自定义捆绑包的standard_layout.html.twig文件夹中创建名为Resources/views的模板。将其添加到该模板:

    {% extends 'SonataAdminBundle::standard_layout.html.twig' %} {% block side_bar_nav %} //add your code here {% endblock side_bar_nav %}

  2. PS:查看side_bar_nav中的阻止vendor/sonata-project/admin-bundle/Resources/views/standard_layout.html.twig的方向

    1. app/config/config.yml(或配置文件所在的位置),添加:
    2. sonata_admin: templates: layout: YourBundle::standard_layout.html.twig

      我建议您使用YourBundle:Admin:standard_layout.html.twig将所有管理模板整理到一个Admin文件夹中。您需要相应地在步骤1中更改模板的位置