我正在使用SonataAdmin并且我看不到模板中显示的用户块(在右上角),尽管我已将其替换为我在此处配置中提到的自定义模板https://sonata-project.org/bundles/admin/3-x/doc/reference/templates.html 我正在使用SonataUserBundle,这是我的配置:
sonata_admin:
templates:
user_block: ApplicationSonataUserBundle:Default:user_block.html.twig
这些是我正在使用的版本:
"require": {
"php": ">=5.5.9",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"incenteev/composer-parameter-handler": "^2.0",
"sensio/distribution-bundle": "^5.0.19",
"sensio/framework-extra-bundle": "^5.0.0",
"sonata-project/admin-bundle": "^3.43",
"sonata-project/doctrine-orm-admin-bundle": "^3.7",
"sonata-project/user-bundle": "4.0.0",
"symfony/monolog-bundle": "^3.1.0",
"symfony/polyfill-apcu": "^1.0",
"symfony/swiftmailer-bundle": "^2.6.4",
"symfony/symfony": "3.4.*",
"twig/twig": "^1.0||^2.0"
},
我没有收到任何错误,但右上角的用户图标没有显示! 我在这里错过了什么?
好吧所以我发现奏鸣曲正在测试如果用户有role_admin
来显示user_block
,如这里提到的https://github.com/sonata-project/SonataAdminBundle/blob/3.x/src/Resources/views/standard_layout.html.twig#L194
寻找这种情况:
{% if app.user and is_granted(sonata_admin.adminPool.getOption('role_admin')) %}
由于所有用户都有ROLE_USER
的角色,我只需要在config.yml文件中将这些信息提供给sonata,这样它就会向所有连接的用户显示user_block
,如下所示:
sonata_admin:
security:
role_admin: ROLE_USER