如何在新的CakePHP中使用where子句?我在尝试:
$restaurants->find()->where(['id' => $r_ids])->all();
$r_ids
是我在查询中需要的ID数组,但这不能按预期工作。
答案 0 :(得分:26)
使用CakePHP 3.x现在需要指示数据类型,对于值数组需要[]
附加到该类型:
$query = $articles
->find()
->where(['id' => $ids], ['id' => 'integer[]']);
或明确使用IN
关键字:
$query = $articles
->find()
->where(['id IN' => $ids]);
另见
答案 1 :(得分:0)
尝试使用CakePHP 3.x
$query = $restaurants
->find()
->where(['id IN' => $r_ids]);
$query->all();
答案 2 :(得分:0)
您还可以使用短语法:
$result = $restaurants->find('all',
['conditions' => ['id IN' =>$r_ids]]
)->all();
答案 3 :(得分:0)
在Cakephp 3.x中,如果您有多个where条件,则查询将如下所示:
return $this
->find()
->contain([
'XYZ.Articles',
'YYY.Managers',
'ZZZ.Readers',
])
->where([
'ID' => $ids,
'READER.STATUS' => $xyz,
],[
'ID' => 'integer[]'
])
;