我需要在这个cakehp3中添加另一个"like",查询也必须在last_name字段中进行检查。我该怎么做呢?我想尊重CakePHP3规则。谢谢
$users = $this->Users
->find()
->where(function ($q) use ($keyword) {
return $q
->like('Users.first_name', "%$keyword%");
// OR ->like('Users.last_name', "%$keyword%");
})
->limit(5)
->toArray();
如果您真的想使用cakepp表达式,这应该会起作用
->where(function ($q) use ($keyword) {
return $q
->or_($q->like('Users.first_name', "%$keyword%"))
->like('Users.last_name', "%$keyword%");
})
但你可以简单地做
->where([
'OR' => [
'Users.first_name LIKE' => "%$keyword%",
'Users.last_name LIKE' => "%$keyword%"
]
])
这不是最好的方法,但这可能有效:
$users = $this->Users
->find()
->where(function ($q) use ($keyword) {
return $q
->like('Users.first_name', "%$keyword% OR Users.last_name LIKE %$keyword%");
})
->limit(5)
->toArray();
如果这不起作用,CakePHP文档的这一部分可能会帮助