我想在布局动态菜单中创建,该菜单将从管理面板进行管理。我所知道的是,对象可以通过控制器的操作传递给视图。
我想要的是将对象传递到布局(树枝引擎(,而无需使用控制器,并且它将独立地形成控制器和操作。
我该怎么做?
如果你想在 Twig 中有一个全局变量/对象,你必须实现Twig_Extension
并添加一个新的全局变量/对象(所有模板都可以访问(。
一个简单的例子是:
1( 在<bundle>/Resources/config/services.yml
注册服务
services:
acme.twig.acme_extension:
class: Acme'DemoBundle'Twig'AcmeExtension
tags:
- { name: twig.extension }
2(然后创建扩展:
<?php
namespace Acme'DemoBundle'Twig
class AcmeExtension extends 'Twig_Extension {
public function getGlobals() {
return [
'menu' => new Menu(),
];
}
}
3(然后在您的模板中:
{{ menu.render }} // Whatever
当然,如果需要,您可以将参数传递给 Twig 扩展。
无论如何,如果你正在尝试构建一个菜单,也许你应该看看KnpMenuBundle,它有很大帮助(https://github.com/KnpLabs/KnpMenuBundle(
希望对您有所帮助!