我有一个问题,而且,我有一个盒子搜索,所有用户都可以从数据库中的表中搜索记录,问题在于特殊字符,因为当数据库中的记录看起来像这样“Canción”并且用户输入并搜索“Cancion”,结果为null,并且没有得到任何结果,但是很明显,如果他们输入“Canción”,他们就会获得标题为Canción的所有记录。功能就是这个;我正在使用ILIKE进行比较,但并没有全力以赴。我正在使用postgres。
public function scopeSearch($query, $search, $option)
{
if ($search !="")
{
if ($option == 'all')
{
$query->where('title', 'Ilike', '%' . $search . '%')
->orWhere('author', 'Ilike', '%' . $search . '%')
->orWhere('description', 'Ilike', '%' . $search . '%')
->orWhere('keywords', 'Ilike', '%' . $search . '%')
->orWhere('section', 'Ilike', '%' . $search . '%');
}
else
{
$query->where($option, 'ILIKE', '%' . $search . '%');
}
}
}
感谢您的帮助。我会感激不尽的
答案 0 :(得分:1)
这不是单独使用Laravel可以直接解决的问题。也许Postgres的无声功能可以解决问题。我自己从未使用它,但我认为它可能就是你要找的东西。