gpt4 book ai didi

symfony - SonataAdmin,将项目添加到侧边菜单

转载 作者:行者123 更新时间:2023-12-04 01:54:31 30 4
gpt4 key购买 nike

我正在尝试将项目/路线添加到侧边菜单,基本上我有用户,它在仪表板中列出了列表和添加功能,现在我也想在我的侧边栏菜单下添加这些。

我注册了一个服务:

#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'),
]
);

}

仪表板中的项目

Dashboard menu items


侧边栏菜单中的项目 Side bar menu

最佳答案

您可以通过执行 php bin/console debug:router 检查路由的名称。但是,我想是的。

  • admin_admin_user_list(用于列表)- 但我不知道您为什么需要它,因为默认菜单条目转发到列表
  • admin_admin_user_create(用于创建用户)

接下来呢?您必须注册 menuBuilderListener。 (我们将 Hook 菜单创建过程,您将完全控制)

服务.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>&nbsp;',
]
)
->setLabel('Dashboard')
->getParent()
->addChild(
'reviews',
[
'route' => 'admin_reviews',
]
)
->setExtras(
[
'icon' => '<span class="mif mif-bubble"></span>&nbsp;',
]
)
->setLabel('Reviews')
->getParent()
->addChild('pages')
->setExtras(
[
'icon' => '<span class="mif mif-files-empty"></span>&nbsp;',
]
)
->setLabel('Pages')
->addChild('home', ['route' => 'admin_pages_home'])
->setExtras(
[
'icon' => '<span class="mif mif-file-empty"></span>&nbsp;',
]
)
->setLabel('Home')
->getParent()
->addChild('review', ['route' => 'admin_pages_review'])
->setExtras(
[
'icon' => '<span class="mif mif-file-empty"></span>&nbsp;',
]
)
->setLabel('Review')
->getParent()
->addChild('about_us', ['route' => 'admin_pages_about_us'])
->setExtras(
[
'icon' => '<span class="mif mif-file-empty"></span>&nbsp;',
]
)
->setLabel('About Us')
->getParent()
->getParent();
}
}

就这些。

关于symfony - SonataAdmin,将项目添加到侧边菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51281602/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com