原则查询:混淆addWhere,Where或Where
||
我有一个查询:
$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中,或者它为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)
而且我必须说,我迷失在复杂的条件下。
如何实现呢?
谢谢
没有找到相关结果
已邀请:
2 个回复
届甸衬丝蚕
试试这个方法
荆怖赡