在 Laravel Eloquent Query 中使用 unaccent PostgreSQL 函数
Posted
技术标签:
【中文标题】在 Laravel Eloquent Query 中使用 unaccent PostgreSQL 函数【英文标题】:Use unaccent PostgreSQL function within Laravel Eloquent Query 【发布时间】:2019-10-19 22:36:25 【问题描述】:在尝试从数据库中检索记录时,我无法使用 pgsql 扩展 unaccent。
我在我的应用程序中设置了一个动态搜索,它使用 Ajax 发送用户在字段中键入的内容以及选择的字段。在将字符串发送到我的控制器之前,我将字符串中的每个重音都替换为 javascript 函数。
我的问题是我不知道如何让 postgre 明白它应该忽略重音符号。
我尝试使用 Eloquent 的 whereRaw 来使用 unaccent(我激活的)功能,但没有成功。
->whereRaw("unaccent(".$request->field.") ILIKE '".$request->search."'")
【问题讨论】:
“没有成功”到底是什么意思? 【参考方案1】:打开 PostgreSQL,选择数据库并执行以下命令:
CREATE EXTENSION unaccent;
$query->whereRaw("unaccent(".$request->field.") ilike unaccent('%".$request->search."%')");
【讨论】:
以上是关于在 Laravel Eloquent Query 中使用 unaccent PostgreSQL 函数的主要内容,如果未能解决你的问题,请参考以下文章
将 MariaDB 语句转换为 Laravel4 Eloquent-Query
laravel 5.1 中 Eloquent 和 Query Builder 有啥区别?
如何使用 Eloquent 在 Laravel 中开始查询?
Laravel Eloquent 和 Query Builder “with (nolock)”