【发布时间】:2016-07-14 15:06:43
【问题描述】:
我在使用 Laravel where 和 like 搜索查询时遇到问题。
$words = 'pa';
$query = Category::where(function ($query) use ($words) {
$query->where('name', 'like', '%'.$words)
->orWhere('name', 'like', $words . '%')
})->pluck('name');
结果是:
[{Chocolate Spa, Zen Spa, Disco Party}]
预期的结果只有Party。
我希望它的搜索名称列以给定单词开头,但不包含该单词。
我怎样才能实现这种搜索方法?
【问题讨论】:
-
只需删除
where()方法,它就会留下:$query->where('name', 'like', $words . '%') -
@iam-decoder 我试过你的方法。它让我空虚。
-
不可能,该查询会产生类似
SELECT name FROM tablename WHERE name LIKE 'pa%'的结果,这是一个正确的查询 -
@iam-decoder 可以吗,因为有 '
' 它返回空? -
而不是
->pluck('name'),你能做到->toSql()并在此处粘贴输出吗?