首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony 5.0和KnpMenuBundle -如何配置

Symfony 5.0和KnpMenuBundle -如何配置
EN

Stack Overflow用户
提问于 2020-01-14 15:01:09
回答 1查看 3K关注 0票数 2

在Symfony5.0应用程序中,我想使用KnpMenuBundle。我通过运行

代码语言:javascript
复制
composer require knplabs/knp-menu-bundle "^3.0"

这会自动在ProjectRoot/config/bundles.php中创建一个条目“:

代码语言:javascript
复制
Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true]

当然,它也下载了这个包。

文档(在:https://symfony.com/doc/master/bundles/KnpMenuBundle/index.html中找到)声明要配置包,您应该编辑文件"app/config/config.yml“。Symfony 5不再有这个文件了--但是对于"ProjectRoot/ config /packages“中的每个”包“,只有一个配置文件。但是,没有为KnpMenuBundle创建配置文件。我自己怎么能做到这一点呢?意思是:命名约定是什么?我如何告诉包实际使用配置文件?

还有另一个问题。在文档中,它说在小枝模板中呈现菜单的工作方式如下所示:

代码语言:javascript
复制
{{ knp_menu_render('AppBundle:Builder:mainMenu') }}

对于Symfony 5,正确的语法/路径是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-14 17:22:57

KnpMenuBundle的配置是可选的。这就是没有创建配置文件的原因。在Symfony 4和5中,您只需手动在config/packages目录中添加yaml配置文件即可。它将被自动读取。这个文件的好名字可能是knp_menu.yaml。在配置文件中,您使用与文档相同的内容。例如:

代码语言:javascript
复制
knp_menu:
    twig:
        template: KnpMenuBundle::menu.html.twig

若要呈现可使用的菜单,请执行以下操作

代码语言:javascript
复制
{{ knp_menu_render('App:Builder:mainMenu') }}

其中Builder是src/Menu目录中类的名称,mainMenu是从类(看医生)调用的方法。

更新

如果我没有错,您必须从Symfony 4定义作为服务的生成器类,这略有不同。由于您可以从文档中读取,您现在将呈现您的菜单,给出服务的别名。

代码语言:javascript
复制
{{ knp_menu_render('main') }}

(将所有AppBundle事件更改为App)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59736410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档