2012-04-11 35 views

回答

3

如果代码应该在每个控制器动作的开始处运行,我建议编写一个处理程序KernelEventkernel.controller将代码分配给控制器之前触发的事件。

如果代码应该在动作代码的某处运行,您可以为create your own event并为其创建一个处理程序。您可以将控制器和所有需要的数据附加到自定义事件对象。

+0

好吧Chiborg,我得弄清楚,感谢您的帮助。 – 2012-04-11 09:40:52

+0

我可能不理解这个问题,但如果你只是想避免复制/粘贴代码,那么让DefaultController扩展Symfony控制器,然后让你的各个控制器扩展DefaultController。但我猜测(正如@chiborg所说)你确实想要执行一些重复的代码。 – Cerad 2012-04-11 13:04:22

+0

那么,我需要的是获得会话并将其发送到模板,这是每个控制器中的重复代码: '$ session = $ this-> get('session'); $ foo = $ session-> get('uid');返回$ this-> render('template',array('session'=> $ foo));''除非有另外一种方法获取并发送会话到模板:)。谢谢。 – 2012-04-11 13:18:55

0

我有完全一样的东西。

在控制器的每一个动作管理权限,我打电话服务

$this->permissions =$this->get('vendor.permissions')->checkPermission('BundleName','Profil','select',$this); 
相关问题