如何在Symfony 2服务容器中设置Doctrine MongoDB存储库

Luk*_*uke 3 php symfony doctrine-orm doctrine-odm

如何在Symfony 2应用程序中正确设置服务容器以支持自定义文档存储库?

到目前为止我所拥有的是:

services:
  acme.repository_user:
    class: Acme\Repository\UserRepository
    arguments: [@doctrine.odm.mongodb.document_manager]
Run Code Online (Sandbox Code Playgroud)

但是,当我查看DocumentRepositoryUserRepository继承的类的构造函数时,我可以看到以下参数:

public function __construct(DocumentManager $dm, UnitOfWork $uow, Mapping\ClassMetadata $class)
Run Code Online (Sandbox Code Playgroud)

我似乎注入了文档管理器但是如何注入工作单元和类元数据?

小智 5

尝试将服务定义为(抱歉xml):

<service id="acme.repository_user"
             class="Acme\Repository\UserRepository"
             factory-service="doctrine.odm.mongodb.document_manager"
             factory-method="getRepository"
             public="false">
    <argument>AcmeBundle:User</argument>
</service>
Run Code Online (Sandbox Code Playgroud)