具有多列的雄辩 WHERE LIKE 子句

Ale*_*lex 3 laravel eloquent

我正在实施一个搜索栏,可以按名字、姓氏或两者搜索客户。因此,例如,Mike Hizer将由匹配MikeHizerzerMike Hizer,等。这里就是我想出了:

Customer::where(
    DB::raw('concat(first_name," ",last_name)'), 'like', "%{$request->search}%"
)->get()
Run Code Online (Sandbox Code Playgroud)

有用。但是有没有更雄辩的方法来组合这两列(first_namelast_name)而不诉诸数据库外观?会不会喜欢

->where(['first_name','last_name'], 'like', "%{$request->search}%")
Run Code Online (Sandbox Code Playgroud)

有可能实现吗?

Rwd*_*Rwd 5

如果你不想使用DB门面,你可以使用 whereRaw 方法:

Customer::whereRaw('concat(first_name," ",last_name) like ?', "%{$request->search}%")->get();
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!