如何在Laravel和psql上搜索带有特殊字符的框搜索记录

问题描述 投票:1回答:1

我有一个问题,就是,我有一个盒子搜索,所有用户都可以从数据库中的表中搜索记录,问题是特殊字符,因为当数据库中的记录看起来像这个“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 . '%');
            }

        }
    }

谢谢你的帮助。我将不胜感激

php laravel psql
1个回答
1
投票

这不是单独使用Laravel可以直接解决的问题。也许Postgres的无声功能可以解决问题。我自己从未使用它,但我认为它可能就是你要找的东西。

https://www.postgresql.org/docs/9.1/static/unaccent.html

© www.soinside.com 2019 - 2024. All rights reserved.