2012-12-28 248 views
3

我想在Symfony2监听器(Symfony v.2.0.16)中设置会话的数据,但不知怎的,监听器不会注册会话变量。Symfony2监听器和会话

我有以下几点:

我services.yml项:

kernel.listener.domain_listener: 
class: Etiam\ClubWebBundle\Listener\SubdomainListener 
arguments: [@service_container]  
tags: 
    - { name: kernel.event_listener, event: kernel.request, method: onDomainParse } 

这是我的听众:

namespace Etiam\ClubWebBundle\Listener; 

use Symfony\Component\EventDispatcher\EventDispatcher; 
use Symfony\Component\EventDispatcher\Event; 

class SubdomainListener { 

private $container; 

public function __construct($container) 
{ 
    $this->container = $container; 
} 


public function onDomainParse(Event $event) { 
    $session = $this->container->get('session'); 
    $session->set('siteData', '123'); 
    $session->save(); 
} 

} 

谁能告诉我为什么我的会话数据是不是听众正在被访问时保存吗?

回答

4

好的,我想通了。

一旦有人遇到与你改变的东西,什么都不会发生听众类似的东西:

如果您有多个包你也许有2名相同的听众和你正在编辑的错误之一。听众显然是全球性的,你只需要一个在多个捆绑包中有效。

您可以在事件下的事件探查器中看到加载的侦听器。