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.

4voto

Towelie Points 59

Une autre façon de le faire dans Laravel 6.x (je ne suis pas sûr mais cela doit aussi fonctionner pour 5.x) :

DB::table('your_table')->get()->last();

Vous pouvez également accéder aux champs :

DB::table('your_table')->get()->last()->id;

4voto

Eduardo Points 127

Honnêtement, c'était tellement frustrant que j'ai presque dû parcourir toute la collection de réponses ici pour découvrir que la plupart d'entre elles ne faisaient pas ce que je voulais. En fait, je voulais seulement afficher ce qui suit au navigateur :

  1. La dernière ligne créée sur ma table
  2. Une seule ressource

Je ne cherchais pas à commander un ensemble de ressources et à ordonner cette liste de manière descendante, la ligne de code ci-dessous est ce qui a fonctionné pour moi sur un projet Laravel 8.

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

3voto

风声猎猎 Points 81

Utilice Model::where('user_id', $user_id)->latest()->get()->first(); il retournera un seul enregistrement, s'il n'est pas trouvé, il retournera null . J'espère que cela vous aidera.

3voto

Dazzle Points 600

Model($where)->get()->last()->id

3voto

Pour laravel 8 :

Model::orderBy('id', 'desc')->withTrashed()->take(1)->first()->id

Le résultat sql requête :

Model::orderBy('id', 'desc')->withTrashed()->take(1)->toSql()

select * from "timetables" order by "id" desc limit 1

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