我是非常新的Laravel,目前與Laravel4一起工作。我試圖在我的項目中添加多列搜索功能。我可以做單列雄辯搜索查詢,但老實說我不知道如何在laravel中做多列的雄辯搜索查詢。我有兩個下拉菜單Laravel多列雄辯搜索查詢
1.Locatiom 2.血型。
我要搜索具有某些血型對某些位置。那是一個用戶,用戶將選擇位置和來自這兩個血型同時下拉菜單,打搜索按鈕。
在我的數據庫,我有兩個列,一個包含位置,另一個包含特定用戶的血型。現在,這樣一個搜索的雄辯查詢應該是什麼?
我是非常新的Laravel,目前與Laravel4一起工作。我試圖在我的項目中添加多列搜索功能。我可以做單列雄辯搜索查詢,但老實說我不知道如何在laravel中做多列的雄辯搜索查詢。我有兩個下拉菜單Laravel多列雄辯搜索查詢
1.Locatiom 2.血型。
我要搜索具有某些血型對某些位置。那是一個用戶,用戶將選擇位置和來自這兩個血型同時下拉菜單,打搜索按鈕。
在我的數據庫,我有兩個列,一個包含位置,另一個包含特定用戶的血型。現在,這樣一個搜索的雄辯查詢應該是什麼?
簡單的連鎖where
每個字段,你需要通過搜索:
// AND
$results = SomeModel::where('location', $location)->where('blood_group', $bloodGroup)->get();
// OR
$results = SomeModel::where('location', $location)->orWhere('blood_group', $bloodGroup)->get();
您可以更輕鬆地與感謝工作的範圍:
// SomeModel class
public function scopeSearchLocation($query, $location)
{
if ($location) $query->where('location', $location);
}
public function scopeSearchBloodGroup($query, $bloodGroup)
{
if ($bloodGroup) $query->where('blood_group', $bloodGroup);
}
// then
SomeModel::searchBloodGroup($bloodGroup)->searchLocation($location)->get();
只是一個明智的例子,對其進行調整滿足您的需求。
這是一個好辦法,但我的事有錯誤的地方作爲laravel不會允許你訪問一個非靜態函數等等,而不是使用SomeModel::searchBloodGroup($bloodGroup)->searchLocation($location)->get();
的,你可以簡單地使用SomeModel::BloodGroup($bloodGroup)->Location($location)->get();
採取searchBloodGroup不有已更改爲BlooGroup,這就是你將如何使用它的所有其他
非常感謝,這個答案似乎很有幫助.. – RTan 2014-09-01 06:43:56