web-dev-qa-db-fra.com

Laravel: Comment obtenir les N dernières entrées de DB

J'ai un tableau des chiens dans ma BD et je veux récupérerN latest added dogs

La seule façon que j'ai trouvée est quelque chose comme ça:

Dogs:all()->where(time, <=, another_time);

Y a-t-il un autre moyen de le faire? Par exemple, quelque chose comme ceci Dogs:latest(5);

Merci beaucoup pour toute aide :)

23
Jakub Kohout

Vous pouvez essayer quelque chose comme ça:

$dogs = Dogs::orderBy('id', 'desc')->take(5)->get();

Utilisez orderBy avec Descending order et prenez le premier nombre n d'enregistrements.

59
The Alpha
Dogs::orderBy('created_at','desc')->take(5)->get();
6
Luca C.

Vous pouvez aussi essayer comme ça:

$recentPost = Article::orderBy('id', 'desc')->limit(5)->get();

Cela fonctionne très bien pour moi dans Laravel 5.6

5
Bablu Ahmed

Ma solution pour la propreté est:

Dogs::latest()->take(5)->get();

C'est la même chose que les autres réponses, en utilisant simplement des méthodes intégrées pour gérer les pratiques courantes.

1
GoogleMac

J'ai trouvé une solution qui m'aide à obtenir le même résultat en utilisant la méthode array_slice(). Dans mon code, j'ai fait array_slice( PickupResults::where('playerID', $this->getPlayerID())->get()->toArray(), -5 ); avec -5 Je voulais les 5 derniers résultats de la requête.

0
Kray