2016-07-05 16 views
0

hat ein Multi-Feld eines Suchformular in meiner Laravel 5.2 appLaravel Mehrfeld-Suchformular

price 
rooms 
type 
rent 

ich habe etwas, was mein Ergebnis falsch nicht korrekt Ich denke, weil im orWhere() verwenden. Ich möchte UND zwischen Eingabefeldern. Ich möchte keine Lösung für diese

public function search() 
    { 

     $un_price = \Request::get('un_price'); 
     $un_rooms = \Request::get('un_rooms'); 
     $un_type = \Request::get('un_type'); 
     $un_rent = \Request::get('un_rent'); 
     $units = DB::table('units')->whereIn('un_status', [1]) 
      ->where('un_price','like','%'.$un_price.'%') 
      ->orWhere("un_rooms", "LIKE", "%$un_rooms%") 
      ->orWhere("un_type", "LIKE", "%$un_type%") 
      ->orWhere("un_rent", "LIKE", "%$un_rent%") 
      ->paginate(20); 
     return view('home.units.show', compact('units')); 
} 
+0

Verwenden Sie einfach wo anstatt wo? –

+0

wenn ich benutze wo ich nur nichts bekomme – fido

+0

concat Variablen mit% Markierung in oderWhere Felder wie in Ihrem wo Feld, sonst suchen Sie nach "un_rooms like '% $ un_rooms%'" ... –

Antwort

2

Verwenden Sie Abfrage String-Filterung. Tun Sie etwas in der Art:

So erhalten Sie alle Ergebnisse, die Sie benötigen, abhängig von den Eingaben, die Sie erhalten.

+0

vielen Dank, es hat gut funktioniert – fido

+0

mit diesem Fall, wie kann ich zwischen un_price suchen und fügen Sie zwei Eingabefelder un_price_from und un_price_to – fido

+1

elseif ($ request-> hat ('un_price_from', 'un_price_to')) {$ Gerät-> zwischen denen ('un_price', [$ request -> un_price_from, $ request-> un_price_to]); } – fido