如何在 CakePHP 中根据 2 列条件获取数据

How to get data based on 2 column condition in CakePHP

我正在尝试在 CakePHP 3.6 中获取一些数据。该条件基于同一 table 中的 2 列。第一列是 status,因为第二列是 is_done_by_user。所以我想在状态为 12 时获取数据。此外,如果状态为 3。但是对于状态 3,需要检查列 is_done_by_user 是否具有值 1。所以最后的事情是。我想用 status 12 获取所有数据。以及状态为 3 的所有数据,其中 is_done_by_user1。 我已经编写了查询,但它没有按照我想要的方式工作。这是我到目前为止尝试过的查询。

$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,
            ],
        ],
    ]
]);