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