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

时间:2015-06-16 06:46:36

标签: yii2

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

我该怎么做?

1 个答案:

答案 0 :(得分:13)

可以这样做:

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

$dataProvider = new ActiveDataProvider([
    'query' => $query,
]);

当您将数组传递给where时,Yii会自动将其转换为IN条件。

因此生成的SQL条件部分将为WHERE parentId IN (1, 2, 4, 6);

它与OR提到的条件相同。