在 Symfony 4 上的 Sonata 管理页面中创建一个新页面
Posted
技术标签:
【中文标题】在 Symfony 4 上的 Sonata 管理页面中创建一个新页面【英文标题】:Creating a new page in Sonata administration page on Symfony 4 【发布时间】:2019-03-31 02:16:48 【问题描述】:我有一个想要修改的现有 Symfony 4 应用程序。我想添加一个新页面并在左侧栏中包含指向它的链接 https://image.ibb.co/dZnjbV/Capture.jpg
我的 sonata_admin.yaml 看起来像这样
sonata_admin:
title: 'GPAC'
title_logo: img/logo.png
templates:
layout: "base.html.twig"
dashboard: "Core/dashboard.html.twig"
list_block: "Block/block_admin_list.html.twig"
edit: "CRUD/edit.html.twig"
list: "CRUD/list.html.twig"
options:
title_mode: 'single_text'
security:
handler: sonata.admin.security.handler.role
role_admin: ROLE_ADMIN
role_super_admin: ROLE_SUPER_ADMIN
dashboard:
blocks:
-
position: left
type: sonata.block.service.template
settings:
template: "Block/block_alert.html.twig"
-
position: right
type: sonata.block.service.template
settings:
template: "Block/block_activity.html.twig"
groups:
admin:
label: 'Administration'
icon: '<i class="fa fa-database"></i>'
skill:
label: 'Matrice de compétences'
icon: '<i class="fa fa-tasks"></i>'
rc:
label: 'Gestion des ressources'
icon: '<i class="fa fa-user-circle-o"></i>'
frc:
label: 'Suivi de compétence des ressources'
icon: '<i class="fa fa-search"></i>'
client:
label: 'Client (OEC)'
icon: '<i class="fa fa-building-o"></i>'
project:
label: 'Gestion d''acréditation'
icon: '<i class="fa fa-folder-open-o"></i>'
council:
label: 'Comités & Réunions'
icon: '<i class="fa fa-calendar"></i>'
assets:
extra_stylesheets:
- bundles/sonataadmin/vendor/admin-lte/dist/css/skins/_all-skins.min.css
remove_stylesheets:
- bundles/sonatacore/vendor/components-font-awesome/css/font-awesome.min.css
sonata_block:
# default_contexts: [cms]
blocks:
sonata.admin.block.admin_list:
contexts: [admin]
sonata.admin.block.search_result:
contexts: [admin]
sonata.block.service.text:
contexts: [admin]
sonata.block.service.template:
contexts: [admin]
我的 src 文件夹就是这个https://image.ibb.co/eBFHVq/Capture2.jpg
任何帮助将不胜感激
【问题讨论】:
【参考方案1】:添加自定义管理页面: 你可以像 Symfony 那样做:
-
创建一个扩展 AbstractAdmin 的 Sonata Admin 类
您必须在其中定义基本路由模式和路由名称
将您的操作添加到该控制器和您的模板生成(渲染)
定义和创建将返回到您的模板的实体和方法
用参数和标签在你的 services.yml 中注册它们
并且您需要将此新块添加到 config.yml (sonata_block)
当然也可以创建你的树枝模板(扩展奏鸣曲的 standard_layout 树枝)
kunicmarko20here 找到的完整示例
【讨论】:
以上是关于在 Symfony 4 上的 Sonata 管理页面中创建一个新页面的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 3 上的 Sonata Admin 实体翻译