0
你能幫助我嗎?我如何在預初始化框架中的會話中設置默認變量,而不是在某些控制器中?謝謝Symfony默認會話變量
你能幫助我嗎?我如何在預初始化框架中的會話中設置默認變量,而不是在某些控制器中?謝謝Symfony默認會話變量
Symfony有事件,你可以附上你自己的event listener
。你可以附加你的事件監聽器的人將是kernel.request
。以下是您可以使用的示例源代碼。
首先,內部Resources/config
文件夾下的文件services.yml
:
services:
listener.my_request_listener:
class: My\AwesomeBundle\Listener\MyListener
arguments: [ @session ]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
其次,你的MyListener
看起來就像這樣:
namespace My\AwesomeBundle\Listener;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpFoundation\Session;
class MyListener
{
protected $session;
public function __construct(SessionInterface $session)
{
$this->session = $session;
}
public function onKernelRequest(GetResponseEvent $event)
{
$kernel = $event->getKernel();
$request = $event->getRequest();
//Your logic goes here
if($this->session->has('someKey')){
$this->session->set('someKey','newvalue');
}
}
}
您是否意味着你的第一個控制器之前聲明會話變量? –