symfony - Sonata Admin - 如何更改默认/管理员前缀

标签 symfony routes sonata-admin

我偶然发现了一个问题,但找不到解决方案。

我想将默认的 Sonata /admin URL 路径前缀更改为其他内容。 我尝试将 routing.yml 路由 admin_sonata_admin 更改为 /admin 以外的其他内容,但仍然,它仍然是默认的管理面板路径。真是令人困惑。

如何更改默认的 /admin 路径?

更新(routing.yml 列表):

app:
    resource: "@AppBundle/Controller/"
    type:     annotation

sonata_user_profile_show:
    resource: "@SonataAdminBundle/Resources/config/routing/sonata_admin.xml"

admin:
    resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml'
    prefix:   /admin

sonata_user:
    resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml'
    prefix:   /admin

_sonata_admin:
    resource: .
    type:     sonata_admin
    prefix:   /admin
    defaults:
        _locale: "%locale%"

最佳答案

要更改网址中的默认管理前缀,您需要首先在 routing.yml 中更新,我想通过阅读您已经完成的评论,第二件事是您需要在 security 中更改此内容。 yml 还可以通过更改管理防火墙模式和 access_control 规则,如果需要,在应用以下更改后也清除缓存

路由

admin_area:
    resource: "@SonataAdminBundle/Resources/config/routing/sonata_admin.xml"
    prefix: /panel

_sonata_admin:
    resource: .
    type: sonata_admin
    prefix: /panel

sonata_user:
    resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml'
    prefix: /panel

防火墙

security:
    firewalls:
        admin:
            pattern:            /panel(.*)
            context:            user
            form_login:
                provider:       fos_userbundle
                login_path:     sonata_user_admin_security_login
                use_forward:    false
                check_path:     sonata_user_admin_security_check
                failure_path:   null
            logout:
                path:           sonata_user_admin_security_logout
                target:         sonata_user_admin_security_login
            anonymous:          true

    access_control:

        # Admin login page needs to be access without credential
        - { path: ^/panel/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/panel/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/panel/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/panel/, role: [ROLE_ADMIN, ROLE_SONATA_ADMIN] }

关于symfony - Sonata Admin - 如何更改默认/管理员前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39105549/

相关文章:

php - 如何将参数发送到 symfony2 验证器引擎中的 validators.lang.yml ?

symfony - 将 Doctrine 实体管理器传递给服务

javascript - UI Router - 如何在状态之间存储数据而不将它们显式传递给 $state.go(...)?

session - 在路由子集上激活的 Express.js session

symfony - 使用SonataAdminBundle。在两步相关实体上配置过滤器

php - 基于 Symfony2 bundle 的应用程序配置合并到全局配置中

php - 将 kernel.root_dir 注入(inject) Symfony2 中的实体构造函数

javascript - 使用到达路由器导航到 404 路由

symfony - 未生成子管理路由 - Sonata Admin Bundle

javascript - Select2 从 <option> 中剥离所有属性