Laravel 5搜索dos`t功能

时间:2017-04-17 10:58:11

标签: php laravel search laravel-5

我是laravel 5.4的新手,需要创建多属性搜索。 在我搜索之前。 enter image description here

搜索之后的结果相同。 enter image description here

这是我的控制器。

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

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

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

            }

以下是我的观点。

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

</div>
</div>
</div>
            <div class="panel panel-default">

            <div class="panel-body">

                  <table class="table table-striped">
                  <thead>

                    <th>Full Name</th>
                    <th>Name with initials</th>
                    <th>National ID Number</th>
                    <th>Date Of Birth</th>

                  </thead>

                  <tbody>
                    @foreach($items as $item)

                     <tr>

                  <td>{{ $item->full_name }}</td>
                  <td>{{ $item->name_with_initials }}</td>
                  <td>{{ $item->nic_no }}</td>
                  <td>{{ $item->date_of_birth }}</td>
              </tr>
                    @endforeach

                  </tbody>

          </table>

            </div>
        </div>

在我写的路线中,我虽然问题在路线上是两条路线

    Route::group(['middleware' => ['web']], function () {
    Route::resource('/userregister', 'UserRegisterController');

});
Route::post('search', 'UserRegisterController@search_code');

有人建议我通过搜索获得结果吗?

1 个答案:

答案 0 :(得分:0)

更改选择下拉列表中的值,如下所示

<select name="institute" id="institute">
  <option selected="selected" value="id">Trainee Id</option>
  <option value="full_name">Trainee Name</option>
  <label for="Search">Name</label>
</select>

还有一个建议, 如果只有一个条件是可能的,那么使用&#39;否则如果&#39;如下,

if($queryType == 'id'){
  $items = $items->where('id', 'LIKE',"%$query%");
}
else if($queryType == 'full_name'){
  $items = $items->where('full_name', 'LIKE',"%$query%");
}