我试图根据几个嵌套条件以及相关模型的值来检索数据。
例如,下面的伪代码会在Models
表中找到Models.type
是所选值之一('mk1'
,'mk2'
或者{{1}的行}})和'mk3'
是选定值之一(Models.style
,或'new'
),相关模型'old'
的字段,OtherModels
是{ {1}}或OtherModels.status
。
active
此代码实际上并不起作用,但此处仅用于说明目的。我该如何编写工作代码?
答案 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