How to get foreign repository inside my repository in Doctrine2/Symfony2?

泄露秘密 提交于 2019-12-03 05:38:14
Sgoettschkes

You can access the EntityManager by calling Doctrine\ORM\EntityRepository#getEntityManager():

$repository = $this
    ->getEntityManager()
    ->getRepository('PondGeolocBundle:User_Lake');

If you like more to inject dependencies, declare your repositories as services so you can inject one to use it inside the other:

services.yml

services:
    repository.user_lake:
        class: Pond\GeolocBundle\Entity\UserLakeRepository
        factory: [@doctrine, getRepository]
        arguments:
            - PondGeolocBundle:User_Lake

    repository.pond_lake:
        class: Pond\GeolocBundle\Entity\PondLakeRepository
        factory: [@doctrine, getRepository]
        arguments:
            - PondGeolocBundle:PondLake
        calls:
            - [setUserLakeRepository, [@repository.user_lake]]

in PondLakeRepository.php you must have a setter (setUserLakeRepository) to a property to store the repository (i.e. $userLakeRepository).

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!