2017-04-17 23 views
2

私はlaravel 5.4に新しく、複数の属性search.iを作成する必要があるのは、単一の属性の検索だけです。しかし、正しい方法を見つけることができません。Laravel 5複数の属性で検索

ここに検索フィールドがあります。 enter image description here

これは、関連するビューです。

<div class="form-group"> 
     <!-- <label>Select Your Institute</label> --> 
     <label>Search By</label> 
     <select name="institute" id="institute"> 
      <option selected="selected" value="Trainee Id">Trainee Id</option> 
      <option value="Trainee Name">Trainee Name</option> 
      <label for="Search">Name</label> 
     </select> 

     <form action="search" method="post" class="form-inline"> 
      <input type="text" name="search" /> 
      <br> 
      <input type="hidden" value="{{ csrf_token() }}" name="_token" /> 
      <input type="submit" name="submit" value="Search"> 
     </form> 
</div> 

ここでは、上記のビューの変更が特に必要なコントローラをドロップダウンで示します。

public function search_code(Request $request){ 
    $query = $request->search; 
    $customers = DB::table('registerdetails')->where('id', 'LIKE',"%$query%")->get(); 
    return view('registeredusers.index')->with('customers',$customers); 
} 

誰でも私がドロップダウンから選択したコントローラを教えていただけますか?

答えて

2

<form>に選択ドロップダウンを入れて、コントローラで$request->instituteで取得できます。次に、選択したドロップダウンの値(IDまたは名前のいずれか)に基づいて、クエリを実行します。お使いのコントローラで

<form action="search" method="post" class="form-inline"> 

    <select name="institute" id="institute"> 
    <option selected="selected" value="id">Trainee Id</option> 
    <option value="name">Trainee Name</option> 
    <label for="Search">Name</label> 
    </select> 
    <input type="text" name="search" /><br> 
    <input type="hidden" value="{{ csrf_token() }}" name="_token" /> 
    <input type="submit" name="submit" value="Search"> 
</form> 

public function search_code(Request $request){ 
    $query = $request->search; 
    $queryType = $request->institute; // 'id' or 'name' 
    $customers = DB::table('registerdetails');   

    if($queryType == 'id'){ 
     $customers = $customers->where('id', 'LIKE',"%$query%"); 
    } 
    if($queryType == 'name'){ 
     $customers = $customers->where('name', 'LIKE',"%$query%"); 
    } 
    $customers->get(); 

    return view('registeredusers.index')->with('customers',$customers); 

} 
+0

卿は、私はこれらを変更し、それが呼ばれるエラーを示しています。私のcontroller.howで「未定義の変数のお客様は、」私はそれを固定することができますか? – Dasun

+0

'$ customers'の初期化を追加するコードが更新されました。また、

+0

も更新されていることに注意してください。あなたはなぜこの "Undefinedプロパティ:Illuminate \ Database \ MySqlConnection :: $ full_name(表示:C:\ xampp \ htdocs \ Training_Management \ resources \ views \ registeredusers \ index.blade.php)を見てください。" – Dasun