使用 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中文网其他相关文章!