在Symfony2上使用与QueryBuilder的内部联接

时间:2014-12-15 18:41:03

标签: php symfony join

我想使用内部Join为我的表auto和rent('s')。它是一个1:N的关系。如果我使用->innerJoin('s', 'a'),则会出现以下错误:

  

[语义错误]第0行,第62页附近的a,ChrisKfzBuchungBundle:自动':错误:未定义类''。

$repo = $this->getDoctrine()->getRepository('ChrisKfzBuchungBundle:Rent');

$qb = $repo->createQueryBuilder('s');
$qb->from('ChrisKfzBuchungBundle:Auto', 'a')
    ->where('s.mieteStart >= :date_from')
    ->andWhere('s.mieteEnde <= :date_to')
    ->setParameter('date_from', $date_from)
    ->setParameter('date_to', $date_to);

如何使用queryBuilder加入一个或多个表?

1 个答案:

答案 0 :(得分:1)

有这样的方法,对我而言,它只是在两个实体之间配置了关系。以下是两个有效的例子:

左连接:

$query = $repo->createQueryBuilder('s')
    ->leftJoin(ChrisKfzBuchungBundle:Auto', 'a', 'WITH', 's.id = a.yourJoinCOlumn')
    ...

内部联接:

$query = $repo->createQueryBuilder('s')
    ->select('s, a')
    ->innerJoin('s.yourJoinColumn', 'a')
    ...