【发布时间】:2016-09-24 10:53:01
【问题描述】:
我在 symfony 中有两个表,通过 ManyToOne 双向关系连接。文章和日期。
我得到了除 a.id : 4 之外的所有文章,因为其中一篇没有响应条件。
我找到了解决方案,但如何简化它?我知道它没有优化。我愿意。
在我的表(日期)中,我有:
+----------------------------
| id | a.id | OK OR NOT ?
+----------------------------
| 1 | 4 | OK
| 2 | 4 | OK
| 3 | 6 | OK
| 4 | 5 | OK
| 5 | 4 | **NOTOK**
----------------------------
$qb = $this->createQueryBuilder('a');
$allIndispo = $qb
->select('a.id')
->leftJoin('a.dates','d')
->where('**NOTOK**')
->orderBy('a.id', 'ASC')
->getQuery()
->getResult();
$allIndispoId = array();
foreach ($allIndispo as $key => $value) {
foreach ($allIndispo[$key] as $key2 => $value2) {
$allIndispoId[] = $value2;
}
}
$allDispo = $this->createQueryBuilder('a')
->select('a')
->where($qb->expr()->notIn('a.id', "'".implode($allIndispoId, "', '")."'"))
->getQuery()
->getResult();
return $allDispo;
【问题讨论】:
标签: php sql doctrine-orm symfony