Как можно добавить orWhere условия в cakephp3.7 потому что в 3.7 orWhere не рекомендуется
Или где условия в cakephp3.7 потому что в 3.7 или где не рекомендуется
select * from Users where Users.state = 'UP' Or (Users.status =1 and Users.role=2)
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
])
]);
});
Смотрите также