Symfony SonataAdmin,左侧添加菜单

Symfony SonataAdmin,左侧添加菜单,symfony,sonata-admin,Symfony,Sonata Admin,我在做Symfony2和sonatabundle 我需要知道如何在仪表板的左侧添加菜单?如屏幕中所示: 我需要在页面左侧的仪表板块(在我的屏幕上为深灰色)。。我该怎么做 你可以在SonataAdmin的演示中看到,登录管理,APSBrow管理 看来他们更新了sonata管理包文档 看看这个=> 或与用户捆绑: 希望它能起作用 这篇文章帮助了我 扩展模板 vendor/sonata-project/admin-bundle/Resources/views/standard_layout.htm

我在做Symfony2和sonatabundle

我需要知道如何在仪表板的左侧添加菜单?如屏幕中所示:

我需要在页面左侧的仪表板块(在我的屏幕上为深灰色)。。我该怎么做

你可以在SonataAdmin的演示中看到,登录管理,APSBrow管理

看来他们更新了sonata管理包文档

看看这个=>

或与用户捆绑:

希望它能起作用

这篇文章帮助了我

扩展模板

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 %}

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

\wamp\www\YourProject\vendor\sonata project\admin bundle\Resources\view\standard\u layout.html.twig

然后查找:
ROLE\u SONATA\u ADMIN
(使用Ctrl+F)然后更改为您用来为我登录您的管理仪表板的角色我正在使用
ROLE\u ADMIN
,然后保存文件,关闭它,检查您的管理仪表板,您将准确找到您要查找的内容

希望它能工作

做两件事:

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

    {%extends'SonataAdminBundle::standard_layout.html.twig%}
    {%block side_bar_nav%}
    //在这里添加您的代码
    {%endblock side\u bar\u nav%}

  • PS:查看
    供应商/sonata项目/admin bundle/Resources/views/standard_layout.html.twig中的block
    侧栏导航
    ,了解方向

  • 在app/config/config.yml(或配置文件所在的位置)中,添加:
  • sonata_管理员:
    模板:
    布局:YourBundle::standard_layout.html.twig


    我建议使用
    YourBundle:Admin:standard_layout.html.twig
    将所有管理模板组织到一个
    Admin
    文件夹中。您需要在步骤1中相应地更改模板的位置。如果您想使用sonata生成的自动菜单,您可以使用以下步骤达到以下目的:

    解决方案

  • config.yml

    sonata_admin:
        templates:
            layout:                         ::layout.html.twig
    
  • 您的
    ::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 %}
    
  • 为什么使用此解决方案?

    由于默认的
    SonataAdminBundle::standard_layout.html.twig
    检查用户是否具有
    角色\u SONATA\u ADMIN
    权限(并且您可能不使用
    SONATA用户bundle
    ),因此您需要覆盖权限检查过程,默认情况下:

    {% 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 %}
    

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

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

    security:
        role_hierarchy:
            ROLE_ADMIN:       [ROLE_USER, ROLE_SONATA_ADMIN]
    

    最后,它终于出现了。有关更多信息,请检查此项:

    您运行的是哪个版本的sonata admin?因为这只是最后一个(不是官方的)。它应该是用knp菜单配置的,官方文档没有提到它。yeti在我的composer.json中有dev master。如果您有时间,您可以添加并查看他们如何在左侧菜单上添加项目。请你把最后的答案贴出来好吗?我很好奇如何定制:)你可以在名为“菜单”的目录中查看,有一个事件管理侧菜单。请选择正确的答案?我没有使用userbundle,我不知道文档如何帮助我处理我的情况?在“dashboard”下面有一个“菜单”配置添加到你的config.yml中,即使它是为sonata admin bundle 2.3设计的,也值得在beta预览版中查看它是否有效:)我可以确认这个解决方案是否有效。该链接在导航后提到
    top\u bar\u
    ,但在导航后它被重命名为
    side\u bar\u
    。或者您可以在
    安全性中从
    角色管理
    扩展
    角色管理
    。yml
    这应该是可以接受的答案,但上面的评论是扩展角色管理!切勿直接接触供应商。始终尝试使用包继承,以使应用程序尽可能可重用。