我知道我可以在控制器中使用它:
$this->get('translator')->trans('key_name')
...但是如何在 Symfony2 GetResponseEvent 或 FilterResponseEvent 事件中获得对翻译器的引用?
我知道我可以使用 ->getRequest() 但我也看不到如何从 Request 对象中获取它。
我知道我可以在控制器中使用它:
$this->get('translator')->trans('key_name')
...但是如何在 Symfony2 GetResponseEvent 或 FilterResponseEvent 事件中获得对翻译器的引用?
我知道我可以使用 ->getRequest() 但我也看不到如何从 Request 对象中获取它。
在services.yml
您只需要添加@translator
服务参考
services.yml
services:
mylistener:
class: Your\Bundle\Listener\RequestListener
arguments: [ @translator ]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
Your/Bundle/Listener/RequestListener.php
namespace Your\Bundle\Listener;
use Symfony\Component\Translation\TranslatorInterface;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
class RequestListener
{
protected $translator;
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}
public function onKernelRequest(GetResponseEvent $event)
{
$this->translator->trans('key_name');
}
}