如何在Symfony2中将控制器变量传递给EventListener?
我厌倦了在Symfony2中的每个动作结束时写下这句话:如何在Symfony2中将控制器变量传递给EventListener?,symfony,twig,event-listener,Symfony,Twig,Event Listener,我厌倦了在Symfony2中的每个动作结束时写下这句话: return $this->render('Project:Bundle:view.twig', array( 'foo' => 1, 'bar' => 2 )); 因此,我尝试在一个操作运行之后连接到请求生
return $this->render('Project:Bundle:view.twig', array(
'foo' => 1,
'bar' => 2
));
因此,我尝试在一个操作运行之后连接到请求生命周期中,以节省一些输入。我希望能够在控制器中执行类似的操作:
$this->params = array(
'foo' => 1,
'bar' => 2
);
然后,侦听器将参数传递给渲染,并使用操作名称自动检测模板。我意识到我需要使用事件侦听器来实现这一点,但我似乎无法在正确的时间连接到生命周期中
- kernel.controller很好,因为我可以获取控制器,但它是在操作运行之前,所以不会设置$this->params
- kernel.response是在操作运行之后,但我似乎无法从这里获得控制器本身
仅供参考-我有Zend背景,这是我第一次使用Symfony2。。。如果我以完全错误的方式处理这个问题,那么大声喊叫 如果您使用的是SensioFrameworkExtraBundle,则可以使用
@Template()
注释并返回数组:
<?php
namespace Acme\FooBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class BarController
{
/**
* @Template()
*/
public function bazAction()
{
return array(
'some_value' => $someValue;
);
}
}
如果这不是我想要的!谢谢