中间表上的Symfony查询

时间:2014-01-22 09:10:03

标签: sql symfony

我在guestevent之间存在ManyToMany关系。中间表为events

这个SQL查询在PHP我的管理员中工作:

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

我正在尝试使用querybuilder执行相同的查询,并尝试了这个:

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

但我没有结果!有没有人有解决方案?

2 个答案:

答案 0 :(得分:1)

您没有实体参考 可能这样的事情会这样做:

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

答案 1 :(得分: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();

阅读有关Using Doctrine's Query Builder in Symfony

的文档