我正在研究Symfony2和SonataAdminBundle。
我需要知道如何在信息中心的左侧添加菜单?就像在屏幕上一样:
我需要在页面的左侧部分显示仪表板块(在屏幕上显示为深灰色)..我该怎么做?
你可以在SonataAdmin http://demo.sonata-project.org/admin/dashboard的演示中看到,登录管理员,apssword admin
答案 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)
好吧,如果您想使用奏鸣曲生成的自动菜单,您可以使用以下步骤来达到这一点:
<强>解决方案强>
覆盖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
检查用户是否具有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)
做两件事:
在自定义捆绑包的standard_layout.html.twig
文件夹中创建名为Resources/views
的模板。将其添加到该模板:
{% extends 'SonataAdminBundle::standard_layout.html.twig' %}
{% block side_bar_nav %}
//add your code here
{% endblock side_bar_nav %}
PS:查看side_bar_nav
中的阻止vendor/sonata-project/admin-bundle/Resources/views/standard_layout.html.twig
的方向
app/config/config.yml
(或配置文件所在的位置),添加: sonata_admin:
templates:
layout: YourBundle::standard_layout.html.twig
我建议您使用YourBundle:Admin:standard_layout.html.twig
将所有管理模板整理到一个Admin
文件夹中。您需要相应地在步骤1中更改模板的位置