首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP 4类的位置

CakePHP 4类的位置
EN

Stack Overflow用户
提问于 2022-11-11 09:32:38
回答 1查看 36关注 0票数 0

我正在尝试设置一个查询,该查询将从一个进程中以数据库为目标。我收到一个数组作为数据,并希望循环它。我只想收到所有正确的项目,所以id字段一需要键,字段2需要定义值。

代码语言:javascript
复制
$array = array(1 => false, 2 => false, 3 => true);

查询的开始:

代码语言:javascript
复制
$query = $this->find()->innerJoinWith('Table');

我的前额():

代码语言:javascript
复制
foreach ($array as $key => $checkpoint) {
    query = $query->where([
       'AND' => [
          'Table.field1' => $key, 
          'Table.field2' => $checkpoint
       ]
    ]);
}
EN

回答 1

Stack Overflow用户

发布于 2022-11-11 10:15:10

从我的IDE:

添加要在WHERE子句中使用的条件或一组条件。条件可以表示为作为键的字段数组,其中包含比较运算符,数组的值将用于将字段与这样的文字进行比较。最后,条件可以表示为单个字符串或字符串数组。当使用数组时,每个条目将使用AND运算符连接到其他条件。对此函数的连续调用也将加入使用AND运算符指定的新条件。此外,可以使用表达式对象来表示值,表达式对象可以包括其他查询对象。使用此方法创建的任何条件都可以用于任何SELECT、UPDATE和DELETE类型查询。使用操作人员的条件:

代码语言:javascript
复制
$query->where([
    'posted >='  => new DateTime('3 days ago'),
    'title LIKE' => 'Hello W%',
    'author_id'  => 1,
], ['posted' => 'datetime']);

前面的示例生成:其中发布了>= 2012-01-27,标题为“Hello%”和author_id =1

所以就你而言,我认为应该是:

代码语言:javascript
复制
foreach ($array as $key => $checkpoint) {
    $query->where([
          'Table.field1' => $key, 
          'Table.field2' => $checkpoint
    ]);
}

注意:我没有考虑到join声明。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74400466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档