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

时间:2019-05-29 13:24:28

标签: 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)

1 个答案:

答案 0 :(得分:0)

您可以将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
        ])
    ]);
});

另请参见