我正在尝试设置一个查询,该查询将从一个进程中以数据库为目标。我收到一个数组作为数据,并希望循环它。我只想收到所有正确的项目,所以id字段一需要键,字段2需要定义值。
$array = array(1 => false, 2 => false, 3 => true);查询的开始:
$query = $this->find()->innerJoinWith('Table');我的前额():
foreach ($array as $key => $checkpoint) {
query = $query->where([
'AND' => [
'Table.field1' => $key,
'Table.field2' => $checkpoint
]
]);
}发布于 2022-11-11 10:15:10
从我的IDE:
添加要在WHERE子句中使用的条件或一组条件。条件可以表示为作为键的字段数组,其中包含比较运算符,数组的值将用于将字段与这样的文字进行比较。最后,条件可以表示为单个字符串或字符串数组。当使用数组时,每个条目将使用AND运算符连接到其他条件。对此函数的连续调用也将加入使用AND运算符指定的新条件。此外,可以使用表达式对象来表示值,表达式对象可以包括其他查询对象。使用此方法创建的任何条件都可以用于任何SELECT、UPDATE和DELETE类型查询。使用操作人员的条件:
$query->where([
'posted >=' => new DateTime('3 days ago'),
'title LIKE' => 'Hello W%',
'author_id' => 1,
], ['posted' => 'datetime']);前面的示例生成:其中发布了>= 2012-01-27,标题为“Hello%”和author_id =1
所以就你而言,我认为应该是:
foreach ($array as $key => $checkpoint) {
$query->where([
'Table.field1' => $key,
'Table.field2' => $checkpoint
]);
}注意:我没有考虑到join声明。
https://stackoverflow.com/questions/74400466
复制相似问题