Мне нужно добавить в эту CakePHP 3 еще один «лайк», запрос должен проверить также в поле last_name. Как я могу это сделать, я хочу соблюдать правила CakePHP 3. Благодарю.
$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();
это должно работать, если вы действительно хотите использовать выражения CakePHP
->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 Документация может помочь