我在guest
和event
之间存在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');
但我没有结果!有没有人有解决方案?
答案 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();
的文档