Yii2的索引页面的默认数据提供程序如下所示:
$dataProvider = new ActiveDataProvider([
'query' => ModelName::find(),
]);
现在,我有一个像
$arr = [1, 2, 4, 6];
的数组我想添加一个where子句,例如:
WHERE parentId=1 OR parentId=2 OR parentId=4 OR parentId=6
我怎样才能做到这一点?
最佳答案
可以这样做:
$query = ModelName::find()->where(['parentId' => $arr]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
当您将数组传递给
where
时,Yii会自动将其转换为IN
条件。因此,生成的SQL条件部分将是
WHERE parentId IN (1, 2, 4, 6);
。相当于您提到的
OR
的条件。
关于Yii2事件记录查询数组中的多个where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30860542/