无法加入学说查询

Can not join in a doctrine query

所以我正在尝试在查询中进行连接,但学说通常会这样做,并且会抛回与断腿一样有用的错误。

任何人都可以告诉我这里哪里出错了。我收到的错误信息;调试:[语法错误] 第 0 行,列 -1:错误:应为 Doctrine\ORM\Query\Lexer::T_IDENTIFIER,已到达字符串结尾。在文件“./vendor/symfony/doctrine-bridge/Messenger/DoctrineTransactionMiddleware.php”第 64

评估实体

 /**
 * @var Candidate
 * @ORM\ManyToOne(
 *          targetEntity="App\Domain\Candidate\Candidate",
 *          inversedBy="assessments")
 * @ORM\JoinColumn(nullable=false)
 */
private $candidate;

候选实体

 /**
 * @var Assessment[]|Collection
 * @ORM\OneToMany(
 *      targetEntity="App\Domain\Assessment\Assessment",
 *      mappedBy="candidate",
 *      cascade={"persist"})
 * @ORM\JoinColumn(nullable=false)
 */
private $assessments;

学说查询

$qb = $this->entityManager->createQueryBuilder();

$qb->select('ca')
    ->from(Candidate::class, 'ca')
    ->innerJoin('ca.assessments', 'as');

您在联接中使用的别名是保留关键字 (as)。

$qb->select('ca')
    ->from(Candidate::class, 'ca')
    ->innerJoin('ca.assessments', 'as'); // <-- change this alias

将您的连接中的 as 更改为其他内容。