我想将翻译字符串注入(inject)服务中,因此我在服务定义中使用了它:

arguments: [@doctrine.orm.entity_manager, @translator]

我在构造函数中使用了它:
public function __construct(\Doctrine\ORM\EntityManager $entityManager, \Symfony\Component\Translation\Translator $translator)

但是我得到这个错误:
.... __construct() must be an instance of Symfony\Component\Translation\Translator, instance of Symfony\Component\Translation\LoggingTranslator given...

两者有什么区别?

最佳答案

根据news announcement,从2.6版开始,翻译器组件被定义为类似于translator.default的服务。

因此,更改您的服务定义:

arguments: [@doctrine.orm.entity_manager, @translator]


arguments: [@doctrine.orm.entity_manager, @translator.default]

09-12 14:57