我有一個控制器上的AJAX jQuery的電話,當我需要搜索的工作原理/過濾數據庫:Laravel - AJAX搜索允許應用多個過濾器
$launchsitesatellite = DB::table('satellites')
->where(function($q) use ($request) {
if(empty($request->type) && empty($request->rocket_type)) {
$q->orWhere('satname','LIKE','%'.$request->search.'%')
->orWhere('norad_cat_id','LIKE','%'.$request->search.'%')
->orWhere('country','LIKE','%'.$request->search.'%')
->orWhere('object_id','LIKE','%'.$request->search.'%');
} else {
if(!empty($request->type)) {
$q->orWhere($request->type,'LIKE','%'.$request->search.'%');
}
if(!empty($request->object_type)) {
$q->orWhere('object_type','LIKE','%'.$request->object_type.'%');
}
if(!empty($request->launch_year)) {
$q->orWhere('launch','LIKE','%'.$request->launch_year.'%');
}
}
})
->where('site', $site_code)->Paginate(300);
該控制器可以搜索/過濾我的數據庫沒問題。我想解決的唯一問題是允許應用多個過濾器。例如,當前當我按對象類型過濾然後決定按國家過濾時,它會重置對象類型。
我想要做的就是讓它能夠按對象類型和國家來篩選,而不僅僅是一個。
由於缺乏示例/文檔,所以我找不到任何如何完成的示例。
編輯:JS AJAX調用
$("#filter-type").change(function() {
$value=$(this).val();
$.ajax({
type: "get",
url: "{{$launchsitename->site_code}}",
data: {'search':$value, type:'object_type'},
success: function(data){
$('#launchsatdisplay').html(data);
}
});
});
您是否考慮過使用Laravel Scout使用搜索引擎:https://laravel.com/docs/5.4/scout? –
您使用的是什麼版本的Laravel? –
@RossWilson我正在使用5.4 –