【问题标题】:Using an Inner Join with QueryBuilder on Symfony2在 Symfony2 上使用内连接和 QueryBuilder
【发布时间】:2015-02-13 22:50:30
【问题描述】:

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

[语义错误] line 0, col 62 near 's a, ChrisKfzBuchungBundle:Auto': Error: Class 's' is not defined.

$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 连接一个或多个表?

【问题讨论】:

标签: php symfony join


【解决方案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')
    ...

【讨论】:

  • [Semantical Error] line 0, col 90 near 's a WHERE s.mieteStart': Error: Class 's' is not defined。请发布完整的代码。你的左连接在哪里定义?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
相关资源
最近更新 更多