首页  >  文章  >  后端开发  >  如何在 Laravel 5 的 Eloquent ORM 中使用 LIKE 执行不区分大小写的搜索?

如何在 Laravel 5 的 Eloquent ORM 中使用 LIKE 执行不区分大小写的搜索?

Linda Hamilton
Linda Hamilton原创
2024-10-25 07:13:28222浏览

How to Perform Case-Insensitive Searches with LIKE in Laravel 5's Eloquent ORM?

Laravel-5 'LIKE' 等效项(Eloquent)

使用 Laravel 5 的 Eloquent ORM 搜索数据库记录时,where 方法可以与 LIKE 运算符一起使用执行不区分大小写的比较。然而,Laravel 中此运算符的语法与标准 SQL LIKE 语法不同。

问题:

开发人员正在尝试使用 Laravel 5 的 Eloquent 执行以下查询ORM:

BookingDates::where('email', Input::get('email'))->orWhere('name', 'like', Input::get('name'))->get()

但是,没有返回任何结果。开发人员不确定为什么 orWhereLike 子句不匹配任何结果。

答案:

orWhereLike 语法接受两个参数:要搜索的列名和搜索内容学期。在本例中,将在 name 列中搜索包含由 Input::get('name') 指定的用户输入的值。

但是,提供的代码使用 orWhere 方法,而不是 orWhereLike 方法。要使用 LIKE 执行不区分大小写的搜索,正确的语法是:

orWhere('name', 'like', '%' . Input::get('name') . '%')

此代码将生成以下 MySQL 语句:

SELECT * FROM booking_dates WHERE email='[email protected]' OR name LIKE '%John%'

通过使用百分号 (%)在搜索词中,查询将匹配名称列包含指定字符串的任何记录,无论其在列值中的位置如何。

以上是如何在 Laravel 5 的 Eloquent ORM 中使用 LIKE 执行不区分大小写的搜索?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn