SonataAdminBundle中不存在函数"is_granted"

use*_*552 4 symfony symfony-sonata

安装Symfony2 cmf后,当我尝试查看admin/dashboard时出现以下错误:

第95行的SonataAdminBundle :: standard_layout.html.twig中不存在函数"is_granted"

acm*_*cme 10

我也花了很多时间挣扎.以下是修复方法:

添加SecurityBundle app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...

        // support for the admin
        new Symfony\Bundle\SecurityBundle\SecurityBundle(),
    );
    // ...
}
Run Code Online (Sandbox Code Playgroud)

security.yml在您的app/config文件夹中创建一个,例如使用此演示内容:

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        in_memory:
            memory:
                users:
                    user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                    admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            pattern: ^/
            anonymous: ~
            http_basic:

                realm: "Secured Demo Area"
    access_control:
        #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
        #- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
Run Code Online (Sandbox Code Playgroud)

并加载它你的app/config/config.yml:

imports:
    - { resource: security.yml }
Run Code Online (Sandbox Code Playgroud)

这对我有用.