[英]SonataAdmin, Add a item to the side menu
我正在嘗試將項目/路線添加到側邊菜單,基本上我在面板中列出了具有列表和添加功能的用戶,現在我也想在側邊欄菜單下添加這些功能。
我注冊了服務:
#config/services.yml
admin.user:
class: AdminBundle\Admin\UserAdmin
arguments: [~, AppBundle\Entity\User, AdminBundle:UserAdmin]
tags:
- { name: sonata.admin, manager_type: orm, group: admin, label: User }
calls:
- [ setAuthorizationChecker, ['@security.authorization_checker']]
接下來是儀表盤的配置。
sonata_admin:
templates:
dashboard: 'SonataAdminBundle:Core:dashboard.html.twig'
layout: 'AdminBundle::standard_layout.html.twig'
user_block: 'AdminBundle:Core:user_block.html.twig'
title: 'Book-a-slot<br /><span>Admin panel</span>'
title_logo: bundles/app/images/logo.png
dashboard:
groups:
user:
label: User
items:
- admin.user
blocks:
-
position: left
type: sonata.admin.block.admin_list
查看configureTabMenu,如果我可以添加它,但沒有運氣。
protected function configureTabMenu(MenuItemInterface $menu, $action, AdminInterface $childAdmin = null)
{
if (!$childAdmin && !in_array($action, ['edit', 'show'])) {
return;
}
$menu->addChild(
'User Create',
[
'uri' => $this->generateUrl(UserAdmin::class.'.create'),
]
);
}
儀表板中的項目
您可以通過執行php bin / console debug:router來檢查路由的名稱。 但是,我想是。
下一個是什么? 您必須注冊menuBuilderListener。 (我們將進入菜單創建過程,在那里您將擁有完全控制權)
Services.yml
app.menu_admin:
class: AdminBundle\EventListener\MenuBuilderListener
tags:
- { name: kernel.event_listener, event: sonata.admin.event.configure.menu.sidebar, method: adminMenuItems }
接下來為EventListeners創建文件夾,並在其中創建MenuBuilderListener。 我將只復制粘貼我最近使用過的一個聽眾。 (根據您的需要進行調整)。
<?php
namespace AdminBundle\EventListener;
use Sonata\AdminBundle\Event\ConfigureMenuEvent;
/**
* Class MenuBuilderListener
* @package AdminBundle\EventListener
*/
class MenuBuilderListener
{
/**
* @param ConfigureMenuEvent $event
*/
public function adminMenuItems(ConfigureMenuEvent $event)
{
$event->getMenu()
->addChild(
'dashboard',
[
'route' => 'admin_dashboard',
]
)
->setExtras(
[
'icon' => '<span class="menu-ico mif mif-chart-pie"></span> ',
]
)
->setLabel('Dashboard')
->getParent()
->addChild(
'reviews',
[
'route' => 'admin_reviews',
]
)
->setExtras(
[
'icon' => '<span class="mif mif-bubble"></span> ',
]
)
->setLabel('Reviews')
->getParent()
->addChild('pages')
->setExtras(
[
'icon' => '<span class="mif mif-files-empty"></span> ',
]
)
->setLabel('Pages')
->addChild('home', ['route' => 'admin_pages_home'])
->setExtras(
[
'icon' => '<span class="mif mif-file-empty"></span> ',
]
)
->setLabel('Home')
->getParent()
->addChild('review', ['route' => 'admin_pages_review'])
->setExtras(
[
'icon' => '<span class="mif mif-file-empty"></span> ',
]
)
->setLabel('Review')
->getParent()
->addChild('about_us', ['route' => 'admin_pages_about_us'])
->setExtras(
[
'icon' => '<span class="mif mif-file-empty"></span> ',
]
)
->setLabel('About Us')
->getParent()
->getParent();
}
}
就這樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.