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.