254 votes

Sélectionner la dernière rangée du tableau

Je voudrais récupérer le dernier fichier inséré dans ma table. Je sais que la méthode first() existe et vous fournit le premier fichier de la table mais je ne sais pas comment obtenir le dernier insert.

15voto

mdamia Points 3955

Les collections Laravel ont la méthode last

Model::all() -> last(); // last element 
Model::all() -> last() -> pluck('name'); // extract value from name field. 

C'est le meilleur moyen de le faire.

15voto

tiaguinhow Points 243

Vous pouvez utiliser la dernière portée fournie par Laravel avec le champ que vous souhaitez filtrer, disons qu'il sera ordonné par ID, alors :

Model::latest('id')->first();

Ainsi, de cette façon, vous pouvez éviter de commander par created_at par défaut chez Laravel.

11voto

Mark-Hero Points 195

Essayez ceci :

Model::latest()->get();

8voto

N'utilisez pas Model::latest()->first(); car si votre collection comporte plusieurs lignes créées au même horodatage (cela se produit lorsque vous utilisez la transaction de base de données DB::beginTransaction(); et DB::commit() ), la première ligne de la collection sera renvoyée et, évidemment, ce ne sera pas la dernière ligne.

Supposons que des lignes avec les identifiants 11, 12, 13 soient créées en utilisant une transaction, elles auront toutes le même horodatage. Model::latest()->first(); est la ligne avec l'id : 11.

6voto

Pour obtenir les détails du dernier enregistrement, utilisez le code ci-dessous :

Model::where('field', 'value')->get()->last()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X