我知道我可以在控制器中使用它:
$this->get('translator')->trans('key_name')
Run Code Online (Sandbox Code Playgroud)
...但是如何在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 }
Run Code Online (Sandbox Code Playgroud)
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');
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3061 次 |
| 最近记录: |