2014-01-22 2 views
1

guestevent 사이에 ManyToMany 관계가 있습니다. 중간 표는 events입니다. 나는 querybuilder과 같은 쿼리를 할 노력하고있어중간 테이블의 symfony 쿼리

SELECT * 
FROM guest AS G 
LEFT JOIN guest_event AS E ON event_id = G.id 

,이 시도 :

이 SQL 쿼리는 PHP에서 내 관리를하고있다

$query = $this->createQueryBuilder('g') 
    ->leftJoin('g.events', 'e', 'WITH', 'e.id = :id') 
    ->addSelect('e'); 

을하지만 난 어떤 결과를 얻을 수 없다 ! 누구든지 해결책이 있습니까?

$query = $this->createQueryBuilder() 
    ->select('e') 
    ->from('MyBundle:Guest', 'g') 
    ->leftJoin('g.events', 'e', 'WITH', 'e.id = :id'); 
+0

Using Doctrine's Query Builder in Symfony 대한 문서를 읽고 당신이 어떤을 보는가 에러 메시지? –

답변

1

을 또는이 시도 : 당신은 아마 이런 일이 그것을 할 것 엔티티 참조 이없는

+0

괜찮아! 감사 – Albee

1

$id = 1; // Your event id 

$repository = $this->getDoctrine() 
    ->getRepository('AcmeDemoBundle:Entity'); 

$query = $repository->createQueryBuilder('g') 
    ->select('e') 
    ->leftJoin('g.events', 'e', 'WITH', 'e.id = :id') 
    ->setParameter('id', $id) 
    ->getQuery(); 

$events = $query->getResult(); 

+0

고마워요! 하지만 난이 오류가 발생 : 개체가 아닌 개체에 대한 select() 멤버 함수를 호출하십시오. 이것은 게스트 엔티티 * @ORM \ ManyToMany (targetEntity = "Prof \ ProtoBundle \ Entity \ Event", 계단식 = { "지속"})의 관계입니다. * @Assert \ NotBlank (message = "") */ 개인 $ 이벤트; – Albee

+0

@Albee'$ this'가 아닌'$ repository-> createQueryBuilder ('g')'와 같은 저장소에서 쿼리 빌더를 생성해야합니다. 내 대답 업데이트를 확인하십시오 –