使用嵌套的AND,OR和相关的模型条件构建cakephp查询

时间:2016-02-22 03:09:03

标签: database cakephp orm cakephp-3.0

我试图根据几个嵌套条件以及相关模型的值来检索数据。

例如,下面的伪代码会在Models表中找到Models.type是所选值之一('mk1''mk2'或者{{1}的行}})和'mk3'是选定值之一(Models.style,或'new'),相关模型'old'的字段,OtherModels是{ {1}}或OtherModels.status

active

此代码实际上并不起作用,但此处仅用于说明目的。我该如何编写工作代码?

1 个答案:

答案 0 :(得分:1)

您没有使用IN关键字。

$query = $this->Models->find()
  ->contain(['OtherModels'])
  ->where(['Models.type IN' => ['mk1', 'mk2', 'm3'])
  ->andWhere(['Models.style' => ['old', 'new'])
  ->andWhere(['OtherModels.status' => 'active', 'pending'])
  ;
$data = $query->all();

更多详情 http://book.cakephp.org/3.0/en/orm/query-builder.html#automatically-creating-in-clauses