我遇到了这个异常:
在容器编译时,“simplethings_entityaudit.reader”服务或别名已被删除或内联。您应该将其公开,或停止直接使用容器并改为使用依赖注入。
(此服务来自位于/vendor的外部bundle)。
然而,当我运行bin/console debug: container simplethings_entityaudit.reader
时,您会看到该服务存在且为public:
Information for Service "simplethings_entityaudit.reader" =========================================================
----------------- -------------------------------------- Option Value ----------------- -------------------------------------- Service ID simplethings_entityaudit.reader Class SimpleThings\EntityAudit\AuditReader Tags - Public yes Synthetic no Lazy no Shared yes Abstract no Autowired no Autoconfigured no Factory Service simplethings_entityaudit.manager Factory Method createAuditReader ----------------- --------------------------------------
目前我的服务中使用以下方法调用此服务:$this->container->get('simplethings_entityaudit.reader')
。
我还尝试将SimpleThings\EntityAudit\AuditReader
注入到我的服务构造函数中,但是我得到了以下错误:
方法“__construct()”的参数“$auditReader”引用类“SimpleThings\EntityAudit\AuditReader”,但不存在这样的服务。它无法自动注册,因为它来自不同的根命名空间。
当我将其添加到我的services.yaml
时,它可以正常工作,但我应该不需要这样做:
SimpleThings\EntityAudit\AuditReader:
alias: simplethings_entityaudit.reader
有什么想法吗?
public:true
作为别名的同级。 - john Smith