0
我有一個查詢我的數據庫,我得到的所有配置文件超過 25,但我想過濾我的結果後再次查詢不同的參數。 例如,哪個配置文件是男性或女性,單身,戀愛,關係等。Laravel查詢後查詢
因爲我的結果有很多不同的查詢,我首先嚐試構建一個switch語句。 但隨着時間的推移,這種增長並不是我認爲的優秀代碼的最佳選擇。 annonye可以幫助我更好地解決問題嗎?
型號:
public static function getProfilesOverTweentyFive()
{
return static::where(['age' > 25]);
}
控制器:
// Filtering the Result
public function filterList($key)
{
switch($key)
{
case 'male':
return $filter = array('gender' , '=', 'male');
break;
case 'female':
return $filter = array('gender' , '=', 'female');
break;
case '10':
return $filter = array('looking', 'LIKE', '%Man%');
break;
case '10':
return $filter = array('looking', 'LIKE', '%Women%');
break;
// etc
}
}
// Show the filtering Result
public function show()
{
$filter = Input::get('filter');
$column = $this->filterList($filter)[0];
$operator = $this->filterList($filter)[1];
$key = $this->filterList($filter)[2];
$profileList = Profile::getProfilesOverTweentyFive()->where($column,$operator,$key)->paginate(15);
}
感謝穆罕默德爲您的想法,但我有兩個不同的過濾器查詢,我認爲我的控制器和模型得到這個解決方案過載。 – ToyRobotic
最後查詢生成器將執行相同的SQL查詢。使用範圍的好處是保持代碼的可讀性和組織性 –