在 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 管理页面中创建一个新页面的主要内容,如果未能解决你的问题,请参考以下文章

在 Sonata symfony 4 中创建管理员用户

Symfony 3 上的 Sonata Admin 实体翻译

Symfony Sonata 媒体包

在 Symfony 4 中使用命令行生成管理员奏鸣曲

一个 Symfony 应用程序中的两个 Sonata 管理面板包

Symfony / Sonata Admin:编辑表单上的列表表单