Yii2事件记录查询数组中的多个where子句

标签 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

我怎样才能做到这一点?

最佳答案

可以这样做:

$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/

相关文章:

php - yii2:Gridview 在表单 View 中的自定义分页

php - 如何按最接近的数字排序?

elasticsearch - 使用Yii 2.0的Elasticsearch:错误:Elasticsearch请求失败:7-无法连接到##。##。##。###端口9200:连接被拒绝

mysql - 如何在 yii2 中的不同表上获得两个左连接?

gridview - Yii2 - 将变量从 View 传递到 Gridview 自定义操作列

javascript - Yii2中的无限数据滚动

file-upload - yii2 文件上传不起作用

mysql - Yii2 mysql 如何将记录插入到列值已经存在且应该是唯一的表中?

php - 如何在命名空间中使用连字符?

mysql - 将数据发送到 API 并将其检索到网格中