php - Doctrine 2 : Arbitrary join and single table inheritance

标签 php doctrine doctrine-orm

注意:这是一个 ORM 限制 reported on the project's issue tracker

我在使用 Doctrine 2.3 中引入的任意连接语法在作为层次结构根的实体类上构建 DQL 查询时遇到问题。

给定这些类:

A - no inheritance

B1 - abstract, root of a hierarchy, discriminator column is named 'type'

我像这样设置一个查询构建器:

$qb->select('a.id AS idA, b.id AS idB')
    ->from('\Entity\A', 'a')
    ->leftJoin('\Entity\B1', 'b', \Doctrine\ORM\Query\Expr\Join::WITH, 'a.something=b.something');

SQL Doctrine 生成的是这样的:

SELECT a.id, b.id FROM a LEFT JOIN b ON (a.something=b.something) WHERE b.type IN ('1', '2', '3')

问题是 where 使 left join 无用。

有没有办法强制将鉴别器列上的条件放在连接中?至少那会让它...

我应该填写错误报告吗?

最佳答案

此错误已在 Doctrine 2.4 中修复

https://github.com/doctrine/doctrine2/issues/2934

关于php - Doctrine 2 : Arbitrary join and single table inheritance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13860375/

相关文章:

php - 将 PHP/MySQL 数组编码为 JSON 时出现问题

php - Doctrine (symfony) YAML schema/fixture 约束问题

symfony - Doctrine - 如何初始化 DB 值

session - 原则 2/多步骤表单/实体进入 session

php - 多个 MySQL 客户端连接到 1 个 MySQL 服务器

javascript - 用于创建按钮并将其十六进制值传递给函数的十六进制值数组

php - Laravel 5 许多中间件和性能

php - 在循环中执行 Doctrine 查询时内存泄漏

php - Symfony 表单生成器中 $options 的解释和所有选项

php - 如何在 symfony WebTestCase 中通过测试中的 fixture 类型获取学说 fixture 引用?