Sql 如何在cakephp3.7中添加orWhere条件,因为在3.7或Where中已弃用

Sql 如何在cakephp3.7中添加orWhere条件,因为在3.7或Where中已弃用,sql,cakephp,conditional-statements,cakephp-3.7,Sql,Cakephp,Conditional Statements,Cakephp 3.7,或cakephp3.7中的何处条件,因为在3.7中或何处已弃用 select * from Users where Users.state = 'UP' Or (Users.status =1 and Users.role=2) 您可以将或关键字(以及可选的和关键字)与嵌套数组语法一起使用: $query->where([ 'OR' => [ 'Users.state' => 'UP', 'AND' => [

或cakephp3.7中的何处条件,因为在3.7中或何处已弃用

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

您可以将
关键字(以及可选的
关键字)与嵌套数组语法一起使用:

$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
        ])
    ]);
});
另见