Poznajemy sposoby na to, aby uszeregować nasze rekordy w kolejności rosnącej (lub malejącej) w oparciu o jakąś kolumnę. Kontynuacja poprzednich zajęć.

Ok, najpierw domyślny orderBy, czyli rosnący:

Route::get('/people/byage', function (Request $request) {
    $ppl= Person::orderBy('age')->get();
    
    return Blade::render(
    '@forelse($people as $person)
    <p>Name: {{$person->full_name}} Age: {{$person->age}}</p>
    @empty
    <p>Nothing found</p>
    @endforelse
    ', ['people' => $ppl]);
});

Malejący już musimy sami określić:

Route::get('/people/byagedesc', function (Request $request) {
    $ppl= Person::orderBy('age', 'desc')->get();
    
    return Blade::render(
    '@forelse($people as $person)
    <p>Name: {{$person->full_name}} Age: {{$person->age}}</p>
    @empty
    <p>Nothing found</p>
    @endforelse
    ', ['people' => $ppl]);
});

Dla treningu zrobimy sobie jeszcze w kolejności utworzenia (rosnąco):

Route::get('/people/bycreatedat', function (Request $request) {
    $ppl= Person::orderBy('created_at')->get();
    
    return Blade::render(
    '@forelse($people as $person)
    <p>Name: {{$person->full_name}} Created: {{$person->created_at}}</p>
    @empty
    <p>Nothing found</p>
    @endforelse
    ', ['people' => $ppl]);
});

A teraz malejąco:

Route::get('/people/bycreatedatdesc', function (Request $request) {
    $ppl= Person::orderBy('created_at', 'desc')->get();
    
    return Blade::render(
    '@forelse($people as $person)
    <p>Name: {{$person->full_name}} Created: {{$person->created_at}}</p>
    @empty
    <p>Nothing found</p>
    @endforelse
    ', ['people' => $ppl]);
});

Korzystamy z inline Blade renderów, które przydają się przy takich ćwiczeniach, pozwalając się skupić na tym, co robimy, bez przesadnej komplikacji.