簡體   English   中英

如何使用奏鳴曲管理員創建自定義列表

[英]how to create custom list with sonata admin

我找不到(了解)如何向左側管理菜單添加項目和分類。 沒有詳細的教程如何執行此操作。 我可以將項目添加到sonata.admin.block.admin_list中,但除了管理菜單外,請在此處輸入圖片描述

由於菜單是通過遍歷已注冊的管理員自動構建的,因此(我所知)沒有簡單的解決方案,只需添加一個管理員服務條目即可。 但這很容易。 您可以注冊MenuBuilderListener並添加所需的新項目...

在您的services.yml中

app.menu_listener:
    class: AppBundle\Listener\MenuBuilderListener
    tags:
        - { name: kernel.event_listener, event: sonata.admin.event.configure.menu.sidebar, method: addMenuItems }

在您的MenuBuilderListener類中

public function addMenuItems(ConfigureMenuEvent $event)
{
    $event->getMenu()->addChild($event->getFactory()->createItem('Test entry', ['route' => 'custom_route']));
    ...
}

在構建菜單之后調用該事件。您可以在此之后更改現有菜單條目,也可以僅添加新條目。 請注意,管理員服務通常負責創建路由,如果您沒有管理員,則必須自己構建路由。

是的,您可以這樣做:

sonata_admin:
title:      Supplier Portal
title_logo: bundles/supplierportalbackend/img/logo.png
show_mosaic_button: false
security:
    handler: sonata.admin.security.handler.role
templates:
    layout:              SonataAdminBundle::layout.html.twig
    search:              SonataAdminBundle:Core:search.html.twig
    search_result_block: SonataAdminBundle:Block:block_search_result.html.twig
    base_list_field:     SonataAdminBundle:CRUD:base_list_field.html.twig

dashboard:
    blocks:
        - { position: left, type: sonata.admin.block.admin_list }
    # Customize user portal menu by setting links
    groups:
        sonata.admin.group.purchase_order_item.open:
            on_top:          true
            label:           Open Items
            label_catalogue: messages
            icon:            '<i class="fa fa-square-o"></i>'
            items:
                - supplier_portal_backend.admin.purchase_open_order_item

        sonata.admin.group.purchase_order_item.confirmed:
            on_top:          true
            label:           Confirmed Items
            label_catalogue: messages
            icon:            '<i class="fa fa-check-square-o"></i>'
            items:
                - supplier_portal_backend.admin.purchase_confirmed_order_item

        sonata.admin.group.purchase_order_item.shipped:
            on_top:          true
            label:           Shipped Items
            label_catalogue: messages
            icon:            '<i class="fa fa-truck"></i>'
            items:
                - supplier_portal_backend.admin.purchase_shipped_order_item

        sonata.admin.group.purchase_order_item.all:
            on_top:          true
            label:           All Items
            label_catalogue: messages
            icon:            '<i class="fa fa-th-list"></i>'
            items:
                - supplier_portal_backend.admin.purchase_order_item

        sonata.admin.group.administration:
            on_top:          true
            label:           Users
            label_catalogue: messages
            icon:            '<i class="fa fa-users"></i>'
            items:
                - supplier_portal_backend.admin.user
            roles: [ ROLE_SUPER_ADMIN ]

您需要向路由添加路由:

admin.blog_post:
    class: db306\CoreBundle\Admin\BlogPostAdmin
    arguments: [~, db306\CoreBundle\Entity\BlogPost, ~]
    tags:
        - { name: sonata.admin, manager_type: orm, group: Content, label: Blog post }
    public: true

admin.category:
    class: db306\CoreBundle\Admin\CategoryAdmin
    arguments: [~, db306\CoreBundle\Entity\Category, ~]
    tags:
        - { name: sonata.admin, manager_type: orm, group: Content, label: Category }
    public: true

這將在您的屏幕快照上顯示的菜單上顯示“內容”標簽,其中包含2個選項:“博客文章”和“類別”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM