我想将翻译字符串注入(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]