OR оператор

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
avs
Сообщения: 16
Зарегистрирован: 2016.01.22, 21:26

OR оператор

Сообщение avs »

Добрый день!

Требуется найти запись в базе, если хотя бы одно из трех полей совпадает. Написал условие:

Код: Выделить всё

$user = User::find()->Where(['or', ['login' => $var, 'email' => $var, 'phone' => $var]])->one();
но Yii2 генерирует:

Код: Выделить всё

SELECT * FROM `user` WHERE ((`login`='33') AND (`email`='33') AND (`phone`='33'))
вместо (как хотелось бы):

Код: Выделить всё

SELECT * FROM `user` WHERE ((`login`='33') OR (`email`='33') OR (`phone`='33'))
Как объединить несколько условий посредством оператора OR?
iva-86-w1
Сообщения: 4
Зарегистрирован: 2016.02.23, 12:12

Re: OR оператор

Сообщение iva-86-w1 »

Попробуйте orWhere()
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: OR оператор

Сообщение andrei.obuhovski »

['or', ['login' => $var], ['email' => $var], ['phone' => $var]]
avs
Сообщения: 16
Зарегистрирован: 2016.01.22, 21:26

Re: OR оператор

Сообщение avs »

andrei.obuhovski писал(а):['or', ['login' => $var], ['email' => $var], ['phone' => $var]]
Спасибо! Работает!
Ответить