[Symfony 3.4]我有一个用户实体。我创建了一个扩展EntityRepository类的UserRepository。
我需要将一个服务注入到存储库中,但它似乎很难实现。我尝试了多种方法:构造函数注入,Setter注入,自定义工厂,但它们似乎都不起作用。
我想使用Setter Injection,因为我需要的服务只使用一次。这是我的实施:
UserRepository:
class UserRepository extends EntityRepository implements UserLoaderInterface {
/**
* @var Utils
*/
protected $utils;
/**
* @param Utils $utils
* @required
*/
public function setUtils(Utils $utils) {
$this->utils = $utils;
}
[...]
}
services.yml:
_defaults:
autowire: true
autoconfigure: true
public: false
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity}'
AppBundle\Repository\UserRepository:
calls:
- [setUtils, ['@AppBundle\Common\Utils']]
似乎从未完成对setUtils的调用,实际上参数$ utils始终为null。
是的,我已经在services.yml中同时使用了@required注释和调用,但都没有。
你明白我的问题在哪里吗?或者更好的解决方案? 非常感谢你