教义2左联例外



我对 Symfony/Doctrine2 用两个 entite 做SQL语句有问题:

$qb = $this->getEntityManager()->createQueryBuilder();
    $qb->select('s')
    ->from('basecomProductionWorkflowBaseBundle:SubprocessData', 's')
    ->leftJoin('basecomProductionWorkflowBaseBundle:ReleaseDay', 'r', ExprJoin::WITH, 'r.id = s.releaseDay')
    ->where(
            $qb->expr()->andX(
                    $qb->expr()->eq('r.date', ':date'),
                    $qb->expr()->isNotNull('r.edition')
            )
    )
    ->setParameter('date', $date);

我收到以下错误消息:

[Semantical Error] line 0, col 124 near 'r WITH r.id =': Error: Identification Variable basecomProductionWorkflowBaseBundle:ReleaseDay used in join path expression but was not defined before.

PS:两个表彼此没有关系(这是解决另一个问题的解决方法)。我已经在phpmyadmin中测试了相同的语句。

它应该是:

->leftJoin('s.releaseDay', 'r')

您也可以通过以下方式简化条件:

->where('r.date = :date')
->andWhere('r.edition IS NOT NULL')

或:

->where('r.date = :date AND r.edition IS NOT NULL')

> ¿你用的是什么 Expr 类?几天前我错误地选择了 Expr 类,并抛出了同样的异常。

尝试:

use DoctrineORMQueryExpr;

相关内容

  • 没有找到相关文章

最新更新