2013-07-24 4 views
1

하나 이상의 '관리자'엔티티와 연결된 엔티티 '직원'이 있습니다. 이 이미 작동doctrine : findBy에서 연관된 엔티티를 사용하는 방법이 있습니까

/** 
* @ManyToMany(targetEntity="manager_entity") 
* @JoinTable(name="manager_employees", 
* joinColumns={@JoinColumn(name="emp_id", referencedColumnName="id")}, 
* inverseJoinColumns={@JoinColumn(name="manager_id", referencedColumnName="id", unique=true)} 
*) 
*/ 
protected $managers; 

다음과 같이 그러므로 나는 직원 개체에 조인 테이블의 연결을 사용한다. 하지만 지금은 특정 관리자의 모든 직원을 검색하고 싶습니다.

$mgr = $this->em->getRepository ('Entities\manager')->findOneBy (array (
       "alias" => $this->get('alias')); 
// only pseudo code - i know that $managers is a list of managers and $mgr cannot be compared to that 
$empList = $this->em->getRepository('Entities\employee')->findBy(array("managers" => $mgr)); 

답변

0

저장소에이 같은 기능을 추가 : 다음

public function findByManager($managerId) 
{ 
    return $this->getEntityManager() 
     ->createQueryBuilder() 
     ->from('employee', 'e') 
     ->innerJoin('e.managers m') 
     ->where('m.Id = :managerId') 
     ->setParameter('managerId', $managerId) 
     ->getQuery() 
     ->getResult(); 
} 

그리고 그냥 사용은 가능하면 그러므로 나는이 같은 뭔가를 부탁 해요

$employee = $repository->findByManager($manager->getId());