Как можно добавить orWhere условия в cakephp3.7 потому что в 3.7 orWhere не рекомендуется - PullRequest
0 голосов
/ 29 мая 2019

orWhere условия в cakephp3.7, потому что в 3.7 orWhere устарела

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

1 Ответ

0 голосов
/ 29 мая 2019

Вы можете использовать ключевое слово 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
        ])
    ]);
});

Смотри также

...