這是我無法找到文檔的東西。我需要爲我的頁面進行多個AJAX搜索。他們都來自同一個數據庫。搜索的唯一區別是他們可能只需要搜索並只搜索一列。Laravel命名'Where'和AJAX語句
例如:我的頁面包含一個搜索整個數據庫的輸入,一個允許我按國家過濾的選擇和另一個允許按類型過濾的過濾器。
我遇到的問題是我無法使用,例如使select只搜索country
列。它搜索整個數據庫,而我需要它只搜索一列。
問題來了,我對所有東西都使用了一個控制器 - 當您只需要搜索整個數據庫時,這種控制器就可以工作。說到只搜索指定的列,它不起作用。這是有問題的控制器:
$launchsitesatellite = DB::table('satellites')
->where(function($q) use ($request) {
$q->orWhere('satname','LIKE','%'.$request->search.'%')
->orWhere('norad_cat_id','LIKE','%'.$request->search.'%')
->orWhere('country','LIKE','%'.$request->search.'%')
->orWhere('object_id','LIKE','%'.$request->search.'%');
})
->where('site', $site_code)->get();
此控制器允許輕鬆搜索我的數據庫。我現在將顯示我的AJAX請求:
$("#filter-country").change(function() {
$value=$(this).val();
$.ajax({
type: "get",
url: "{{$launchsitename->site_code}}",
data: {'search':$value, type:'country'},
success: function(data){
$('#launchsatdisplay').html(data);
}
});
});
這會得到用戶提供的搜索請求。這一次,再次完美運作,並設法得到我想要的結果。唯一的是它搜索我的整個數據庫,而我只想搜索我的數據庫中的country
列。
基本上,我的問題是:我是否能夠命名AJAX請求,例如country
,問我的控制器只使用->orWhere('country')
搜索請求,所以它只能在我的數據庫使用country
列?有可能以某種方式命名它們嗎?
你的意思是' - > orWhere($請求 - >類型, '喜歡',「% 」。$請求 - >搜索。 '%'):'? –
@OmisakinOluwatobi - 不幸的是,這是行不通的。每當我搜索我得到一個500服務器錯誤。我想這是因爲它向搜索URL添加了一個'&type = country'。 –
這意味着您必須確保「類型」中的文本與數據庫表中的列相同 –