Laravel: Wie nimmst du die letzten n (beliebig viele) Reihen nach aufsteigender Reihenfolge?

8
  1. Ich habe 3 Spalten id , msg und created_at in meiner Model-Tabelle. created_at ist ein Zeitstempel und id ist der Primärschlüssel.
  2. Ich habe auch 5 Daten, world => time4 , hello => time2 , haha => time1 , hihio => time5 und dunno => time3 und diese Daten sind in aufsteigender Reihenfolge (wie hier angeordnet) basierend auf ihrem id angeordnet.

In Laravel 4 möchte ich diese Daten abrufen, sie in aufsteigender Reihenfolge anordnen und die letzte Anzahl n (in diesem Fall 3) der Datensätze nehmen. Also möchte ich dunno , world und hihio rows so in einem div anzeigen lassen:

%Vor%

Was ich versucht habe

%Vor%

unerwünschtes Ergebnis:

%Vor%

Auch versucht

%Vor%

unerwünschtes Ergebnis:

%Vor%

Ich habe auch das Gegenteil versucht, ohne Glück

%Vor%

Dieses Problem scheint ziemlich einfach zu sein, aber ich kann meine Logik nicht richtig verstehen. Ich bin immer noch ziemlich neu in Laravel 4, also würde ich bessere Lösungen mit Bonuspunkten belohnen als mit orderBy() und take() , wenn es welche gibt. Vielen Dank!

    
Mark 11.06.2014, 03:32
quelle

2 Antworten

7

Sie sind sehr nahe.

Es klingt so, als ob Sie das Array zuerst in absteigender Reihenfolge sortieren möchten

%Vor%

, aber kehren Sie dann das Array um. Sie können dies auf zwei Arten tun, entweder das traditionelle PHP (mit array_reverse).

%Vor%

Oder die Laravel-Methode, die reverse -Funktion in Laravels Collection -Klasse verwendet.

%Vor%

Sehen Sie sich Laravels Collection -Dokumentation auf der API-Site unter Ссылка

an

Jetzt $ Daten enthalten die gewünschte Ausgabe.

%Vor%     
timgws 11.06.2014, 03:38
quelle
3

Du bist ziemlich nah dran mit deinem zweiten Versuch. Nach dem Abrufen der Zeilen aus der Datenbank müssen Sie nur das Array umkehren. Angenommen, Sie haben eine Instanz von Illuminate\Support\Collection , müssen Sie nur Folgendes tun:

%Vor%     
Kemal Fadillah 11.06.2014 03:37
quelle

Tags und Links