mirror of
https://github.com/doctrine/orm.git
synced 2026-03-24 06:52:09 +01:00
DDC-3108: Criteria cannot reference a joined tables' fields when used with an ORM QueryBuilder #3857
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @doctrinebot on GitHub (Apr 30, 2014).
Originally assigned to: @Ocramius on GitHub.
Jira issue originally created by user Ceiu:
This regression was introduced in 2.4.2 with the addition of the "rootAlias" stuff. Basically, the hard-coded addition of the rootAlias + "." prevents any Criteria object from referencing any field that isn't on the first table selected.
Example:
// Assume $repo is a valid EntityRepository and $value is some scalar value.
$qb = $repo->createQueryBuilder('T1')->join('T1.field', 'T2');
$criteria = new Comparison('T2.field2', Comparison::EQ, $value);
$qb->addCriteria($criteria);
$dql = $qb->getDQL();
$dql is now (roughly) equal to:
SELECT T1 FROM T1 JOIN T1.field T2 WHERE T1.T2.field2 =
Evaluating this causes QueryExceptions to be thrown; usually something along the lines of "Expected Doctrine\ORM\Query\Lexer::, got '.'"
There's a similar issue involving ordering by a related field for the same reason.
@doctrinebot commented on GitHub (Apr 30, 2014):
@doctrinebot commented on GitHub (Jan 17, 2015):
Comment created by @ocramius:
Fixed in DDC-3436
@doctrinebot commented on GitHub (Jan 17, 2015):
Issue was closed with resolution "Fixed"