Laravel - grupowanie rekordów po statusie

0

Hej, mam problem z odpowiednim pogrupowanie rekordów po statusie. Nie jestem pewien czy grupowanie to dobra nazwa ale chodzi o to aby produkty które są w sprzedaży wyświetlały się na początku listy, te które są zarezerwowane w drugiej kolejności a na końcu te sprzedane.
Czy da się to ogarnąć odpowiednim zapytaniem sql a najlepiej z poziomu Eloquent?

Dzięki

3

A jak wygląda baza?
Bo jak masz statusy typu 1,2,3 to możesz zrobić zwykłe order by.

0

Znaczy nie mam statusów 1, 2, 3 ale bardzo podobnie w formie stringów, coś w stylu active, sold itd

1

to moze zwyczajnie posortuj po statusie i wyswietlaj po kolei od danego statusu i tyle.

1
michalos25 napisał(a):

Hej, mam problem z odpowiednim pogrupowanie rekordów po statusie. Nie jestem pewien czy grupowanie to dobra nazwa ale chodzi o to aby produkty które są w sprzedaży wyświetlały się na początku listy, te które są zarezerwowane w drugiej kolejności a na końcu te sprzedane.

Czy da się to ogarnąć odpowiednim zapytaniem sql a najlepiej z poziomu Eloquent?

Dzięki

Ja bym zrobił to tak. W modelu zrobił scope'a:

public function scopeStatus(string $status) {
    return $this->where('status', $status);
}

Później w kontrolerze masz już dostęp:

$soldProducts = Product::status('sold');
$activeProducts = Product::status('active');

1 użytkowników online, w tym zalogowanych: 0, gości: 1