3
我有一個查詢:主義查詢:混淆addWhere,andWhere,orWhere
$q->andWhere($q->getRootAlias().'.is_published = ?', 1);
$q->andWhere($q->getRootAlias().'.published_at >= ?', time());
$q->leftJoin($q->getRootAlias().'.EventLdapGroup l');
$q->andWhereIn('l.ldap_group_id', $permissions_id);
$q->orWhere('l.ldap_group_id IS NULL);
,輸出:
FROM
Event r LEFT JOIN r.EventLdapGroup l
WHERE
r.is_published = ? AND
r.published_at >= ? AND
l.ldap_group_id IN (?, ?) OR
l.ldap_group_id IS NULL
唯一的問題是,如果ldap_group_id
爲空(最後狀態),」將刪除is_published
和published_at
條件。
我想類似的東西[要麼值是ldap_group_id,或者要麼是空]:
FROM
Event r LEFT JOIN r.EventLdapGroup l
WHERE
r.is_published = ? AND
r.published_at >= ? AND
(l.ldap_group_id IN (?, ?) OR l.ldap_group_id IS NULL)
,我必須說,我與複雜失去where條件。 如何實現這一目標?
感謝
不幸的是查詢生成器不可以在Doctrine 1.2中找到:'(。Found該解決方案(見下文) – 2011-03-24 16:02:58