我是 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'”的错误
(我也尝试按照说明将其注册为服务,但这也不起作用。我没有保存该努力产生的错误信息,但如果有人认为,我会重复这些步骤并发布它会很有用。)
我可以使用一些帮助来了解我哪里出错了。谢谢。