blackator / vedi-menu-bundle
Symfony 的菜单组件
0.5.4
2021-08-13 10:28 UTC
Requires
- symfony/framework-bundle: *
- symfony/security-bundle: *
- symfony/twig-bundle: ^5.3
- symfony/yaml: *
- twig/extra-bundle: ^2.12|^3.0
README
此组件为在 Symfony 中处理菜单添加了功能。
安装
composer require blackator/vedi-menu-bundle
使用
<?php namespace App\Controller; use Blackator\Bundle\VediMenuBundle\Loaders\YamlMenuLoader; use Blackator\Bundle\VediMenuBundle\Service\VediMenu; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; class HomeController extends AbstractController { /** * @Route("/", name="home") */ public function index(VediMenu $vediMenu): Response { $menu = $vediMenu->create(new YamlMenuLoader($this->getParameter('kernel.project_dir') . '/config/menu/main_menu.yaml'), 'main'); return $this->render('home/index.html.twig', ['menu' => $menu]); } }
在 twig 模板中
{{ render_menu(menu) }}
VediMenu - 从加载器数据创建菜单对象的 服务
YamlMenuLoader - 用于从 YAML 文件加载数据的类。扩展了 Blackator\Bundle\VediMenuBundle\Loaders\AbstractMenuLoader。
默认的 TWIG 模板位于 vendor/blackator/vedi-menu-bundle/Resources/views/default.html.twig 或 @VediMenu/default.html.twig 作为 TWIG 路径。