Нужна помощь для построения запроса с activedataprovider - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу выполнить следующее условие ГДЕ в yii2 ActiveDataProvider

Ожидаемое условие Где:

$query="WHERE VoterName Like '%s%' AND (contactno != '' OR whatsapp_no!= '')";

Мое текущее состояние Где:

$query->andFilterWhere(['like', 'VoterName', $this->VoterName]);
$query->orWhere(['<>', 'contactno', ''])->orWhere(['<>', 'whatsapp_no', '']);

Я хочу получитьтолько те записи, у которых есть контактно или whatsapp_no.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Когда вам нужно установить мультиусловие, вы должны использовать и где , например, для вашего вопроса:

$query->andFilterWhere(['like', 'VoterName', $this->VoterName]);
$query->andWhere(['OR',['<>', 'contactno', ''],['<>', 'whatsapp_no', '']]);
0 голосов
/ 29 ноября 2018

Ссылка: \yii\db\QueryInterface::where()

Может ли следующий запрос удовлетворить ваши потребности?

$query->andWhere(['like', 'VoterName', $this->VoterName])
      ->andWhere(['or',
                 ['!=', 'contactno', ''],
                 ['!=', 'whatsapp_no', '']
        ]);
...