Foreach在哪里类CakePHP 4

2hh7jdfx  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(106)

我正在尝试设置一个从foreach指向数据库的查询。我正在接收一个数组作为数据,并希望对其进行循环。我只想接收所有正确的项,因此ID字段1需要是键,字段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
       ]
    ]);
}
xfb7svmp

xfb7svmp1#

在我的IDE中:
添加一个条件或一组条件,以便在该查询的WHERE子句中使用。条件可以表示为一个字段数组,其中包含比较运算符的关键字,数组的值将用于比较字段与此类文字。最后,条件可以表示为单个字符串或字符串数组。使用数组时,每一个条目都将使用AND操作符与其余的条件连接起来。2连续调用该函数也将使用AND操作符连接指定的新条件。3另外,值可以用表达式对象来表示,表达式对象可以包含其他查询对象.用这个方法创建的任何条件都可以与任何SELECT,UPDATE和DELETE类型的查询。使用运算符的条件:

$query->where([
    'posted >='  => new DateTime('3 days ago'),
    'title LIKE' => 'Hello W%',
    'author_id'  => 1,
], ['posted' => 'datetime']);

上一个示例将生成:发布地点〉= 2012-01-27 AND标题类似于'您好W%' AND作者ID = 1
所以在你的情况下,我认为应该是:

foreach ($array as $key => $checkpoint) {
    $query->where([
          'Table.field1' => $key, 
          'Table.field2' => $checkpoint
    ]);
}

注意:我没有考虑join语句。

相关问题