How to inject a repository into a service in Symfony?

前端 未结 5 1633
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-30 21:39

I need to inject two objects into ImageService. One of them is an instance of Repository/ImageRepository, which I get like this:

$         


        
5条回答
  •  长情又很酷
    2020-11-30 22:17

    Here is a cleaned up solution for those coming from Google like me:

    Update: here is the Symfony 2.6 (and up) solution:

    services:
    
        myrepository:
            class: Doctrine\ORM\EntityRepository
            factory: ["@doctrine.orm.entity_manager", getRepository]
            arguments:
                - MyBundle\Entity\MyClass
    
        myservice:
            class: MyBundle\Service\MyService
            arguments:
                - "@myrepository"
    

    Deprecated solution (Symfony 2.5 and less):

    services:
    
        myrepository:
            class: Doctrine\ORM\EntityRepository
            factory_service: doctrine.orm.entity_manager
            factory_method: getRepository
            arguments:
                - MyBundle\Entity\MyClass
    
        myservice:
            class: MyBundle\Service\MyService
            arguments:
                - "@myrepository"
    

提交回复
热议问题