我正在做一個房地產相關的應用程序,我一直在很難搞清楚如何設置查詢,以便它會返回「Only Apartments or選定區域內的雙層住宅「我希望用戶能夠在城市的多個選定的象限中找到多種類型的住宅。Laravel雄辯:如何篩選多個和/或標準單表
我有一個列「類型」,它可以是「公寓」的數據庫,「家」,「雙面」,「移動設備」
在另一列我與值quadrant_main:「NW」,「 SW「,」NE「,」SE「。
我的代碼在只選擇了一個象限的情況下工作,但是當我選擇多個象限時,我似乎得到的結果包含所有第二或第三或第四象限的屬性類型,而不是僅「公寓」和「 Duplex「或任何類型的用戶選擇...任何幫助將不勝感激! thx提前。
我的控制器功能如下:
public function quadrants()
{
$input = \Request::all();
$currentPage = null;
$column = "price";
$order = "desc";
//
// Looks like the input is like 0 => { key: value } ...
// (an Array of key/value pairs)
$q = Listing::where('status','=','Active')->where(function($query) {
$input = \Request::all();
$currentPage = null;
$typeCount = 0;
$quadrantCount = 0;
foreach($input as $index => $object) {
$tempObj = json_decode($object);
$key = key((array)$tempObj);
$val = current((array)$tempObj);
if ($key == "type") {
if ($typeCount > 0) {
$query->orWhere('type', '=', $val);
}
else {
$query->where('type', '=', $val);
$typeCount++;
}
}
if ($key == "quadrant_main") {
if ($quadrantCount > 0) {
$query->orWhere('quadrant_main', '=', $val);
}
else {
$query->where('quadrant_main', '=', $val);
$quadrantCount++;
}
}
// else {
// $query->orWhere($key,$val);
// }
}
if($currentPage) {
//Force Current Page to Page of Val
Paginator::currentPageResolver(function() use ($currentPage) {
return $currentPage;
});
}
});
$listings = $q->paginate(10);
return $listings;