Symfony SonataAdmin,左侧添加菜单
我在做Symfony2和sonatabundle 我需要知道如何在仪表板的左侧添加菜单?如屏幕中所示: 我需要在页面左侧的仪表板块(在我的屏幕上为深灰色)。。我该怎么做 你可以在SonataAdmin的演示中看到,登录管理,APSBrow管理 看来他们更新了sonata管理包文档 看看这个=> 或与用户捆绑: 希望它能起作用 这篇文章帮助了我 扩展模板Symfony SonataAdmin,左侧添加菜单,symfony,sonata-admin,Symfony,Sonata Admin,我在做Symfony2和sonatabundle 我需要知道如何在仪表板的左侧添加菜单?如屏幕中所示: 我需要在页面左侧的仪表板块(在我的屏幕上为深灰色)。。我该怎么做 你可以在SonataAdmin的演示中看到,登录管理,APSBrow管理 看来他们更新了sonata管理包文档 看看这个=> 或与用户捆绑: 希望它能起作用 这篇文章帮助了我 扩展模板 vendor/sonata-project/admin-bundle/Resources/views/standard_layout.htm
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%}
供应商/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
这应该是可以接受的答案,但上面的评论是扩展角色管理!切勿直接接触供应商。始终尝试使用包继承,以使应用程序尽可能可重用。