覆盖管理配置
有时您可能想要覆盖来自供应商的一些管理设置。本指南将解释如何实现此操作。但是,请记住此操作相当危险,可能会破坏代码。
从配置文件中,您可以添加一个名为 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 许可协议获得许可。