在 cakephp3 中使用 find()

using find() in cakephp3

如何使用 find() 执行查询,例如:

select * from table1 
where status =1 and (title like '%keyword%' OR content like '%keyword%');

在 cakephp 3 中

通过使用函数作为 orWhere()andWhere() 的参数,您可以将条件与表达式对象组合在一起:

$query = $table1->find()
        ->where(['status' => 1])
        ->andWhere(function ($exp) {
            return $exp->or_([
                'title LIKE' => '%keyword%',
                'content LIKE' => '%keyword%'
            ]);
 });

或者您可以简单地使用下面的代码

$query = $table1->find()
    ->where([
        'status' => 1,
        'OR' => [['title LIKE' => '%keyword%'], ['content LIKE' => '%keyword%']],
    ]);

详情请看link