2017-02-08 12 views
1

私は顧客を姓、名、またはその両方で検索できる検索バーを実装しています。だから、例えば、Mike Hizerは、ここで私が思いついたものだなど、MikeHizerzerMike Hizerによってマッチされるだろう:Eloquent複数の列を持つWHERE LIKE句

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

それは動作します。しかし、これらの2つの列(first_namelast_name)をDBファサードに頼らずに組み合わせるためには、より曖昧なアプローチがありますか?

->where(['first_name','last_name'], 'like', "%{$request->search}%") 

のようなものは達成することが可能でしょうか?

+1

Laravel Scoutをチェックしましたか? https://laravel.com/docs/5.4/scout Eloquentモデルに全文検索を追加するための簡単なドライバベースのソリューションを提供します。 –

+0

@Denis Priebeはい、私はそれを見てください、ありがとう! – Alex

答えて

-1
$query = User::where('id', '=', '2'); 

$query->where('first_name', 'LIKE', "%$search%"); 
$query->or_where('last_name', 'LIKE', "%$search%"); 
$users = $query->get(); 

あなたはwhereRawメソッドを使用することができDBファサードを使用しない場合は...

3

をこの方法を試してみてください:

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

・ホープ、このことができます!

+0

ニース、それはまさに私が使ったアプローチです。私はEloquentが 'DB'や生のクエリを使わずに機能を持っているのかどうか疑問に思っていました。とにかく、ありがとう – Alex