0

cakephp3.7 中的 orWhere 条件,因为在 3.7 orWhere 中已弃用

select * from Users where Users.state = 'UP' Or (Users.status =1 and Users.role=2)
4

1 回答 1

1

您可以使用嵌套数组语法中的任何一个OR关键字(为了更好的可读性,可选关键字):AND

$query->where([
    'OR' => [
        'Users.state' => 'UP',
        'AND' => [
            'Users.status' => 1,
            'Users.role' => 2
        ]
    ]
]);

或表达式:

$query->where(function (
    \Cake\Database\Expression\QueryExpression $exp,
    \Cake\ORM\Query $query
) {
    return $exp->or_([
        'Users.state' => 'UP',
        $query->newExpr()->and_([
            'Users.status' => 1,
            'Users.role' => 2
        ])
    ]);
});

也可以看看

于 2019-05-29T15:25:15.097 回答