disjfa / menu-bundle
用于 symfony 的菜单组件,也可用于 glynn-admin-symfony
0.4.0
2023-11-07 22:17 UTC
Requires
- knplabs/knp-menu-bundle: ^2|^3
- symfony/event-dispatcher: ^5|^6
README
它做什么
此组件为项目添加了两个菜单构建器。一个用于网站侧,一个用于管理员。这可以帮助更容易地生成菜单结构。您可以查看 glynn-admin-symfony4 以获得一个简单的示例。它使用 KnpMenuBundle。
它具有自己的观点,使用 bootstrap4 模板进行配置
安装
composer req disjfa/menu-bundle
设置
在模板中,您需要添加一个菜单。
{{ knp_menu_render('admin', {'currentClass': 'active', 'ancestorClass': 'active', 'depth':3, 'template': 'admin/menu.html.twig'}) }}
或者
{{ knp_menu_render('site', {'currentClass': 'active', 'ancestorClass': 'active', 'depth':2, 'template': 'admin/menu.html.twig'}) }}
注册一个菜单
然后,在您的代码中,您可以订阅菜单以添加自己的
<?php namespace App\Menu; use Disjfa\MenuBundle\Menu\ConfigureSiteMenu; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class MenuListener implements EventSubscriberInterface { public function onMenuConfigure(ConfigureSiteMenu $event) { $menu = $event->getMenu(); $menu->addChild('my_route', [ 'route' => 'my_route', 'label' => 'My route title', ])->setExtra('icon', 'fa-home'); } /** * @return array */ public static function getSubscribedEvents() { return [ ConfigureSiteMenu::class => ['onMenuConfigure', 999] ]; } }
或者您也可以订阅 ConfigureAdminMenu
事件来为管理员菜单执行相同的操作。
完成
现在我们已经完成了。制作菜单,变得出色!