【发布时间】:2012-04-18 18:23:56
【问题描述】:
我在使用 Doctrine 2 时遇到了问题,并且在我试图开始工作的maytomany 关系中左加入。这可能是我的查询生成器,但我似乎无法弄清楚。
我有一个这样的连接表:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
对于两个模型,用户和吸引力,其中用户是关系的所有者。
当我执行这个查询时:
$attractions = $CI->em->createQueryBuilder()
->select('a', 'u')
->from('\ListLovers\Model\Attraction', 'a')
->leftJoin('a.users', 'u', \Doctrine\ORM\Query\Expr\Join::WITH, 'u.id = 4')
->getQuery()->getResult();
对于 id 为 1 的景点,我的用户数是 1。太棒了!
现在如果我像这样在连接表中添加另一行:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 1 1 |
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
...并执行相同的查询,我的用户计数为 1 的吸引力是...零。什么?
我错过了什么吗?
谢谢, 标记。
【问题讨论】:
-
您必须使用字段连接到另一个表(您使用自定义标识符),并且过滤器必须在 SQL 查询的“where”部分。
标签: php doctrine many-to-many doctrine-orm