0

我是 Symfony 的新手,并尝试按照https://symfony.com/doc/current/KnpMenuBundle/index.html上的说明以“简单”的方式设置导航菜单。它说“首先在你的一个包的菜单目录中创建一个新类。” 我认为捆绑包是我用 composer 安装的东西。我不知道我有自己的捆绑包。文档继续说示例构建器类看起来像

    // src/Menu/Builder.php [ <-- comment in the original ]

    namespace App\Menu;
    
    use Knp\Menu\FactoryInterface;
    use Knp\Menu\ItemInterface;
    // [etc]

    final class Builder
    {
       
        public function mainMenu(FactoryInterface $factory, array $options): ItemInterface
        {
            $menu = $factory->createItem('root');

            $menu->addChild('Home', ['route' => 'homepage']);
            // [etc]
        
            // create another menu item
            $menu->addChild('About Me', ['route' => 'about']);
            // you can also add sub levels to your menus as follows
            $menu['About Me']->addChild('Edit profile', ['route' => 'edit_profile']);

            // ... add more children

            return $menu;
        }
    }

所以我把这个文件放入src/Menu/Builder.php并尝试在我的 base.html.twig 模板中渲染它,如文档中所示{{ knp_menu_render('App:Builder:mainMenu') }}。结果是一个 RuntimeError:

在渲染模板期间抛出异常(“Bundle”App”不存在或未启用。可能您忘记将其添加到“App\Kernel.php”文件的“registerBundles()”方法中?”)。

我很确定 KnpMenuBundle 已在我的 config/bundles.php 中注册,但我不知道如何解决上述关于“Bundle 'App'”的错误

(我也尝试按照说明将其注册为服务,但这也不起作用。我没有保存该努力产生的错误信息,但如果有人认为,我会重复这些步骤并发布它会很有用。)

我可以使用一些帮助来了解我哪里出错了。谢谢。

4

0 回答 0