Sie müssen Abfrageausdruck verwenden, aber dies kann nicht in einem Paginierungsarray erfolgen.
So Nach ndn Vorschlag hier ist, wie ich tun würde,
einen benutzerdefinierten finder erstellen. In Ihrer UsersTable Datei
public function findByKeyword(Query $query, array $options)
{
$keyword = $options['keyword'];
$query->where(
function ($exp, $q) use($keyword){
$conc = $q->func()->concat([
'Users.fname' => 'literal', ù
'Users.lname' => 'literal']);
return $exp
->or_([
'Users.fname LIKE' => "%$keyword%",
'Users.lname LIKE' => "%$keyword%",
])
->like($conc, "%$keyword%");
}
);
return $query;
}
-Controller
$this->paginate = [
'finder' => [
'byKeyword' => [
'keyword' => $this->request->data['Users']['keyword']
]],
'conditions' => $limo, // this will merge your $limo conditions
// with the ones you set in the custom finder
'order'= > ['Users.fname desc'],
];
$this->set('userlist', $this->paginate($this->Users));
Dies funktioniert. Vielen Dank. Ich habe auch den zweiten like-Parameter geändert, um (falls jemand anderes das gleiche Problem hat): like ($ conc, '%'. $ Terms. '%'); – toast