2017-04-17 137 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或name),執行查詢。

<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

現在可以了,但這裏是另一個錯誤。先生,請你看看爲什麼這個「未定義的屬性:Illuminate \ Database \ MySqlConnection :: $ full_name(查看:C:\ xampp \ htdocs \ Training_Management \ resources \ views \ registeredusers \ index.blade.php)」 – Dasun