Yii2活动记录查询来自数组的多个where子句

Nis*_*PTG 9 yii2

Yii2的索引页面的默认数据提供程序如下:

$dataProvider = new ActiveDataProvider([
    'query' => ModelName::find(),
]); 
Run Code Online (Sandbox Code Playgroud)

现在,我有一个类似的阵列 $arr = [1, 2, 4, 6];

我想添加一个where子句,如:

WHERE parentId=1 OR parentId=2 OR parentId=4 OR parentId=6
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

aro*_*hev 14

可以这样做:

$query = ModelName::find()->where(['parentId' => $arr]);

$dataProvider = new ActiveDataProvider([
    'query' => $query,
]);
Run Code Online (Sandbox Code Playgroud)

传递数组时where,Yii会自动将其转换为IN条件.

所以生成的SQL条件部分将是WHERE parentId IN (1, 2, 4, 6);.

这相当于你提到的条件OR.