Cakephp 查找 'OR' 和 'AND' 复杂连接条件的语法
Cakephp find syntax for 'OR' and 'AND' complex join conditions
我有一个任务计划应用程序,我正在尝试根据两个条件获取任务:它们的截止日期在接下来的 2 周内,或者任务本身将在 2 周内结束。这是我的非工作代码:
$conditions['AND'] = array(
'OR'=>array(
'AND'=>array(
'Task.due_date >'=> $now,
'Task.due_date <'=> $twfn
),
'AND'=>array(
'Task.end_time > '=> $now,
'Task.end_time <' => $twfn
)
)
);
有附加条件,因此外$conditions['AND']
SQL 日志显示:
WHERE ((((`Task`.`end_time` > '2015-06-30') AND (`Task`.`end_time` < '2015-07-14')))
这意味着 OR
未被评估。如果相关,每个任务都有一个 end_time
,但不一定是 due_date
。
任何正确方向的帮助或指示将不胜感激!
使用这个:AND
s 应该在数组中,因为你为数组提供了相同的键(AND),最后一个将被使用
$conditions['AND'] = array(
'OR'=>array(
array(
'AND'=> array(
array(
'Task.due_date >'=> $now,
),
array(
'Task.due_date <'=> $twfn
)
),
),
array(
'AND'=>array(
array(
'Task.end_time > '=> $now,
),
array(
'Task.end_time <' => $twfn
)
)
)
)
);
来自文档的更多示例
http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#complex-find-conditions
我有一个任务计划应用程序,我正在尝试根据两个条件获取任务:它们的截止日期在接下来的 2 周内,或者任务本身将在 2 周内结束。这是我的非工作代码:
$conditions['AND'] = array(
'OR'=>array(
'AND'=>array(
'Task.due_date >'=> $now,
'Task.due_date <'=> $twfn
),
'AND'=>array(
'Task.end_time > '=> $now,
'Task.end_time <' => $twfn
)
)
);
有附加条件,因此外$conditions['AND']
SQL 日志显示:
WHERE ((((`Task`.`end_time` > '2015-06-30') AND (`Task`.`end_time` < '2015-07-14')))
这意味着 OR
未被评估。如果相关,每个任务都有一个 end_time
,但不一定是 due_date
。
任何正确方向的帮助或指示将不胜感激!
使用这个:AND
s 应该在数组中,因为你为数组提供了相同的键(AND),最后一个将被使用
$conditions['AND'] = array(
'OR'=>array(
array(
'AND'=> array(
array(
'Task.due_date >'=> $now,
),
array(
'Task.due_date <'=> $twfn
)
),
),
array(
'AND'=>array(
array(
'Task.end_time > '=> $now,
),
array(
'Task.end_time <' => $twfn
)
)
)
)
);
来自文档的更多示例 http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#complex-find-conditions