Php 在Symfony 2中,如何将对象传递到布局视图而不执行任何操作?
我想在布局动态菜单中创建,它将从管理面板进行管理。 我所知道的是,对象可以通过控制器的操作传递到视图 我想要的是在不使用控制器的情况下将对象传递给布局(细枝引擎),并且该布局将独立于控制器和动作Php 在Symfony 2中,如何将对象传递到布局视图而不执行任何操作?,php,symfony,twig,Php,Symfony,Twig,我想在布局动态菜单中创建,它将从管理面板进行管理。 我所知道的是,对象可以通过控制器的操作传递到视图 我想要的是在不使用控制器的情况下将对象传递给布局(细枝引擎),并且该布局将独立于控制器和动作 我该怎么做呢?如果你想在Twig中创建一个全局变量/对象,你必须实现Twig\u扩展并添加一个新的全局变量(所有模板都可以访问) 一个简单的例子是: 1) 在/Resources/config/services.yml services: acme.twig.acme_extension:
我该怎么做呢?如果你想在Twig中创建一个全局变量/对象,你必须实现Twig\u扩展
并添加一个新的全局变量(所有模板都可以访问)
一个简单的例子是:
1) 在/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(),
];
}
}
当然,如果需要,可以将参数传递给细枝扩展
不管怎样,如果你想建立一个菜单,也许你应该看看KnpMenuBundle,这很有帮助()
希望有帮助 在你注册了细枝引擎之后,你可以建立你所需要的对象,然后使用$twig->addGlobal('my_object',$object')代码>。通过这种方式,您的对象可以在任何地方访问。DarkBee说我应该做什么,我找到了解决方案,但非常感谢您的解决方案。我是php新手,我不知道所有的事情(如:),再一次谢谢!
{{ menu.render }} // Whatever