Symfony2: How to access to service from repository

后端 未结 8 1728
有刺的猬
有刺的猬 2020-12-31 13:08

I have class ModelsRepository:

class ModelsRepository extends EntityRepository
{}

And service

container_data:
 class:               


        
8条回答
  •  爱一瞬间的悲伤
    2020-12-31 13:48

    I would suggest using a factory service:

    http://symfony.com/doc/current/components/dependency_injection/factories.html

    //Repository
    class ModelsRepositoryFactory
    {
        public static function getRepository($entityManager,$entityName,$fooservice)
        {
            $em     = $entityManager;
            $meta   = $em->getClassMetadata($entityName);
    
            $repository = new ModelsRepository($em, $meta, $fooservice);
            return $repository;
        }
    }
    
    //service
    AcmeBundle.ModelsRepository:
            class: Doctrine\ORM\EntityRepository
            factory: [AcmeBundle\Repositories\ModelsRepositoryFactory,getRepository]
            arguments:
                - @doctrine.orm.entity_manager
                - AcmeBundle\Entity\Models
                - @fooservice  
    

提交回复
热议问题