跳到内容

覆盖管理配置

编辑此页

有时您可能想要覆盖来自供应商的一些管理设置。本指南将解释如何实现此操作。但是,请记住此操作相当危险,可能会破坏代码。

从配置文件中,您可以添加一个名为 default_admin_services 的新部分,并使用以下模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sonata_admin:
    default_admin_services:
        # service configuration
        model_manager:              sonata.admin.manager.orm
        data_source:                sonata.admin.data_source.orm
        field_description_factory:  sonata.admin.field_description_factory.orm
        form_contractor:            sonata.admin.builder.orm_form
        show_builder:               sonata.admin.builder.orm_show
        list_builder:               sonata.admin.builder.orm_list
        datagrid_builder:           sonata.admin.builder.orm_datagrid
        translator:                 translator
        configuration_pool:         sonata.admin.pool
        route_generator:            sonata.admin.route.default_generator
        security_handler:           sonata.admin.security.handler
        menu_factory:               knp_menu.factory
        route_builder:              sonata.admin.route.path_info
        label_translator_strategy:  sonata.admin.label.strategy.native
        pager_type:                 default

通过这些设置,您将能够更改管理实例使用的默认服务和模板。

如果您需要覆盖特定管理的服务,您可以在服务声明期间进行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# config/services.yaml

services:
    admin.blog_post:
        class: App\Admin\BlogPostAdmin
        tags:
            - name: sonata.admin
              model_class: App\Entity\BlogPost
              manager_type: orm
              label: 'Blog post'
              label_translator_strategy: sonata.admin.label.strategy.native
              route_builder: sonata.admin.route.path_info
              pager_type: simple
              # and so on
本作品,包括代码示例,均根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本