我正在实施一个搜索栏,可以按名字,姓氏或两者搜索客户。因此,例如,Mike Hizer
将匹配Mike
,Hizer
,zer
,Mike Hizer
等。以下是我提出的建议:
Customer::where(
DB::raw('concat(first_name," ",last_name)'), 'like', "%{$request->search}%"
)->get()
有效。但是有没有一种更有说服力的方法来组合这两个列(first_name
和last_name
)而不诉诸DB外观?会像
->where(['first_name','last_name'], 'like', "%{$request->search}%")
可以实现吗?
答案 0 :(得分:4)
如果您不想使用DB
外观,可以使用whereRaw方法:
Customer::whereRaw('concat(first_name," ",last_name) like ?', "%{$request->search}%")->get();
希望这有帮助!
答案 1 :(得分:-1)
$query = User::where('id', '=', '2');
$query->where('first_name', 'LIKE', "%$search%");
$query->or_where('last_name', 'LIKE', "%$search%");
$users = $query->get();
试试这种方式..