2016-02-28 38 views
3

在我的Symfony 3.0項目中,我有一個實體名爲ImageGroups,我創建了一個存儲庫ImageGroupsRepository,它使用ImageGroups實體。我也有一個ImagesRepositorySymfony 3.0:重複使用存儲庫中的實體

做出了Images實體ImageGroupsRepository我有一個方法叫getUserImageGroupsImagesRepository我有一個方法叫add

我想問的是如何使用來自ImageGroupsRepositorygetUserImageGroups方法爲addImagesRepository

回答

3

在你的資料庫,你可以得到$this->getEntityManager()實體管理器,這允許調用getRepository()爲了得到另一個倉庫:

class ImagesRepository extends EntityRepository 
{ 
    public function add() 
    { 
     $em = $this->getEntityManager(); 

     $imagesGroups = $em 
      ->getRepository('AcmeBundle:ImageGroups') 
      ->getUserImageGroups(); 

     // … 
    } 
} 
4

由AL給出的答案是正確的,我只是想提供一個另一種方法來訪問實體管理器,而無需再次調用該函數,通過$this->_em

class ImagesRepository extends EntityRepository 
{ 
    public function add() 
    { 
     $imagesGroups = $this->_em 
      ->getRepository('AcmeBundle:ImageGroups') 
      ->getUserImageGroups(); 

     // … 
    } 
} 

如果你看一下documentation for EntityRepository,你會看到,getEntityManager()函數只是返回EntityRepository類的受保護的$_em成員。