2016-10-21 16 views
0

ここに私が遭遇した最新の問題があります。私は自分のアプリケーションに検索を実装しようとしていて、where('firstname', 'LIKE', %$search%)などでキーワードを検索しているときにそれを行う方法を知っています。ただし、ユーザーが指定する基準に基づいて検索を絞り込むにはどうすればよいですか。例えば、$キーワードだけでなく、$ cityと$ pricePointも検索できます。laravel 5.2検索クエリ

PHPでクエリを構造化する方法を理解しようとしています。ユーザーが$キーワードと都市を指定し、それを検索すると、ユーザーが$キーワードのみを指定した場合、クエリの都市側存在しません。

プロジェクトは、Laravel 5.2とmysqlデータベースをベースにしています。どんな助けもありがとうございます。

答えて

3

$ keyword、$ city、$ pricePointという3つの基準があるとします。あなたは行うことができます。

$query = DB::table('users'); 
if (!empty($keyword)) { 
    $query = $query->where('keyword', 'LIKE', '%'.$keyword.'%'); 
} 
if (!empty($city)) { 
    $query = $query->where('city', 'LIKE', '%'.$city.'%'); 
} 
if (!empty($pricePoint)) { 
    $query = $query->where('pricePoint', 'LIKE', '%'.$pricePoint.'%'); 
} 
$results = $query->get(); 

は、その後、あなたはもちろんの基準のリストをやって、ループでそれらを反復処理する代わりの条件ならば別のものを追加することで何かが、より汎用的にすることができます。

+0

チャームのように働いた!あなたは私にもっと多くの時間の不満を救った。 – max234435

+0

私はあまりにも多くを求めているように思われたくありませんが、getメソッドを実行して検索フォームを送信すると、空の入力フィールドをURLに含めないでください。 – max234435

+1

JavaScriptを使用する必要があります。あなたはそれを行うための可能な方法を提供するそのポストを見ることができます:http://www.billerickson.net/code/hide-empty-fields-get-form/ – Arkandias