简体   繁体   English

在Symfony 4的Sonata管理页面中创建新页面

[英]Creating a new page in Sonata administration page on Symfony 4

I have an existing Symfony 4 application that I want to modify. 我有一个要修改的现有Symfony 4应用程序。 I want to add a new page and include a link to it in the left side bar https://image.ibb.co/dZnjbV/Capture.jpg 我想添加一个新页面,并在左侧栏中添加到该页面的链接https://image.ibb.co/dZnjbV/Capture.jpg

my sonata_admin.yaml looks like this 我的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]

My src folder is lik this https://image.ibb.co/eBFHVq/Capture2.jpg 我的src文件夹是https://image.ibb.co/eBFHVq/Capture2.jpg

Any help would be appreciated 任何帮助,将不胜感激

To add custom admin page: you can do that very similar as Symfony: 要添加自定义管理页面:您可以执行与Symfony非常相似的操作:

  1. Create a Sonata Admin class that extends AbstractAdmin 创建扩展AbstractAdmin的Sonata Admin类
  2. you have to define base route pattern and route name in there 您必须在其中定义基本路线模式和路线名称
  3. add your Actions to that controller and your template generation (render) 将操作添加到该控制器,然后生成模板(渲染)
  4. define and create entities and methods that will return to your template(s) 定义和创建将返回到模板的实体和方法
  5. Register them in your services.yml with arguments and tags 使用参数和标签在您的services.yml中注册它们
  6. and you need to add this new block to config.yml (sonata_block) 并且您需要将此新块添加到config.yml(sonata_block)
  7. and of course create your twig templates too (extends sonata's standard_layout twig) 并且当然也创建您的树枝模板(扩展了Sonata的standard_layout树枝)

Complete example found here by kunicmarko20 kunicmarko20这里找到完整的例子

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM