Cakephp 3搜索查询,带有concat

toa*_*ast 4 cakephp query-builder cakephp-3.0 cakephp-3.x

我正在尝试对两个连接的列fname和lname进行搜索。

这似乎不起作用:

Object of class Cake\Database\Expression\FunctionExpression could not be converted to string

$users = $this->Users->find();
$users->select(['id', 'fname', 'lname'])
    ->where([$users->func()->concat(['fname', 'lname']).' LIKE' => $terms]);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢。

Obj*_*tor 5

如果要串联名字和姓氏,则应该在名字和姓氏之间加上空格。

$users->select(['id', 'fname', 'lname'])
      ->where(function ($exp, $query) use ($terms) {
         $conc = $query->func()->concat([
            'fname' => 'identifier', ' ',
            'lname' => 'identifier'
         ]);
         return $exp->like($conc, $terms);
       });
Run Code Online (Sandbox Code Playgroud)

  • 这可行。谢谢。我还将第二个like参数更改为(以防其他人遇到相同的问题):like($ conc,'%'。$ terms。'%'); (3认同)