需要使用activedataprovider生成查询的帮助吗

li9yvcax  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(279)

我想在yii2activedataprovider中执行以下where条件
预期条件:

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

我目前的状况:

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

我只想取那些没有联系人号码或whatsapp\ u号码的记录。

of1yzvn4

of1yzvn41#

参考文献: \yii\db\QueryInterface::where() 以下查询能否满足您的需要?

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

cnjp1d6j2#

当您需要设置多重条件时,必须使用andwhere,例如用于您的问题:

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

相关问题