忽略多个搜索请求中的重音符号

时间:2019-05-22 09:07:45

标签: php mysql sql laravel eloquent

我想知道如何在Laravel的雄辩下多次搜索时忽略重音。

目前我有这个:

// $searchTerms => 'Héllo human';
$explodedTerms = explode(" ", $searchTerms); 

...

// $explodedTerms => ['Héllo', 'human'];
$query->where(function ($q) use ($explodedTerms) {
    foreach ($explodedTerms as $value) {
        $q->whereRaw('LOWER(`text`) LIKE ?', ['%'.strtolower($value).'%' ]);
        }
    });
...

我想使用搜索词“ hello human”来匹配字段文本。

我尝试过ILIKE,但出现错误:

$q->whereRaw('LOWER(`text`) ILIKE ?', ['%'.strtolower($value).'%' ]);
  

SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有一个错误;请参见语法。查看与您的MySQL服务器版本相对应的手册,以在'ILIKE

附近使用正确的语法

1 个答案:

答案 0 :(得分:0)

这就是答案 $ str = iconv('utf-8','ASCII // IGNORE',$ str);