Code: Select all
$items = Item::query()
->where("type", $itemType)
->when($mode, function (Builder $query, $mode) {
switch ($mode) {
case "TopFavorites":
return $query->orderByDesc('number_favorited');
case "BestSelling":
return $query->orderByDesc('number_sold');
case "RecentlyUpdated":
return $query->orderByDesc('updated_at');
case "ForSale":
return $query->where("onSale", true);
case "Offsale":
return $query->where("onSale", false);
}
})
->get();
Code: Select all
private function whenModeQuery(Builder $query, string $mode) {
switch ($mode) {
case "TopFavorites":
return $query->orderByDesc('number_favorited');
case "BestSelling":
return $query->orderByDesc('number_sold');
case "RecentlyUpdated":
return $query->orderByDesc('updated_at');
case "ForSale":
return $query->where("onSale", true);
case "Offsale":
return $query->where("onSale", false);
}
}
Code: Select all
$items = Item::query()
->where("type", $itemType)
->when($mode, $this->whenModeQuery($query, $mode))
->get();
Mobile version