0
我知道我可以在控制器中使用:参考翻译在Symfony2的事件
$this->get('translator')->trans('key_name')
...但我怎么在Symfony2中GetResponseEvent或FilterResponseEvent事件得到参考翻译?我知道我可以使用 - > getRequest(),但我不明白我怎么能从Request对象中获取它。
我知道我可以在控制器中使用:参考翻译在Symfony2的事件
$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 }
你/包/监听器/ 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');
}
}
这在Symfony 3中不起作用。参数[@translator]是无效的YAML。 ['@translator']传递YAML测试,但不作为有效的TranslatorInterface类型传入构造函数 – pogeybait 2016-08-09 09:28:10