如何在 CakePHP 中根据 2 列条件获取数据
How to get data based on 2 column condition in CakePHP
我正在尝试在 CakePHP 3.6 中获取一些数据。该条件基于同一 table 中的 2 列。第一列是 status
,因为第二列是 is_done_by_user
。所以我想在状态为 1
或 2
时获取数据。此外,如果状态为 3
。但是对于状态 3,需要检查列 is_done_by_user
是否具有值 1
。所以最后的事情是。我想用 status
1
和 2
获取所有数据。以及状态为 3
的所有数据,其中 is_done_by_user
为 1
。
我已经编写了查询,但它没有按照我想要的方式工作。这是我到目前为止尝试过的查询。
$query = $this->find('all',[
'conditions' => [
'Appointments.is_active' => 1,
'Appointments.status IN' => (1,2,3),
'Appointments.is_done_by_user' => 1
]
]);
可能我离实际查询还很远
您编写的查询将找到所有规定条件都为真的任何内容,这显然不是您想要的。我想这可能是您要找的东西?
$query = $this->find('all',[
'conditions' => [
// This must always be true
'Appointments.is_active' => 1,
// One of the conditions in this list must be true
'OR' => [
// Either the status is 1 or 2
'Appointments.status IN' => (1,2),
// Or the status is 3 AND the user is 1
[
'Appointments.status' => 3,
'Appointments.is_done_by_user' => 1,
],
],
]
]);
我正在尝试在 CakePHP 3.6 中获取一些数据。该条件基于同一 table 中的 2 列。第一列是 status
,因为第二列是 is_done_by_user
。所以我想在状态为 1
或 2
时获取数据。此外,如果状态为 3
。但是对于状态 3,需要检查列 is_done_by_user
是否具有值 1
。所以最后的事情是。我想用 status
1
和 2
获取所有数据。以及状态为 3
的所有数据,其中 is_done_by_user
为 1
。
我已经编写了查询,但它没有按照我想要的方式工作。这是我到目前为止尝试过的查询。
$query = $this->find('all',[
'conditions' => [
'Appointments.is_active' => 1,
'Appointments.status IN' => (1,2,3),
'Appointments.is_done_by_user' => 1
]
]);
可能我离实际查询还很远
您编写的查询将找到所有规定条件都为真的任何内容,这显然不是您想要的。我想这可能是您要找的东西?
$query = $this->find('all',[
'conditions' => [
// This must always be true
'Appointments.is_active' => 1,
// One of the conditions in this list must be true
'OR' => [
// Either the status is 1 or 2
'Appointments.status IN' => (1,2),
// Or the status is 3 AND the user is 1
[
'Appointments.status' => 3,
'Appointments.is_done_by_user' => 1,
],
],
]
]);