web-dev-qa-db-fra.com

Trouver la valeur maximale d'une colonne dans laravel

Le problème a commencé parce que j'ai une table (Clientes), dans laquelle la clé primaire n'est pas auto-incrémentée. Je veux sélectionner la valeur maximale stockée dans une base de données de colonnes. Comme ceci, sélectionnez, mais avec orm éloquent (Laravel):

SELECT MAX(Id) FROM Clientes

Comment puis-je faire dans?

J'ai essayé:

Cliente::with('id')->max(id)
Cliente::select('id')->max(id)

Je préfère ne pas faire un simple "SELECT MAX (ID) FROM Clientes"

Je ne peux pas le faire.

Merci a tous!

22
Guido Caffa

La syntaxe correcte est la suivante:

Cliente::max('id')

https://laravel.com/docs/5.5/queries#aggregates

49
Alexey Mezenin

Laravel rend cela très facile, dans votre cas, vous utiliseriez

$maxValue = Cliente::max('id');

Mais vous pouvez aussi récupérer le dernier enregistrement de la table, qui sera aussi la plus haute valeur

$newestCliente = Cliente::orderBy('id', 'desc')->first(); // gets the whole row
$maxValue = $newestCliente->id;

ou juste pour la valeur

$maxValue = Cliente::orderBy('id', 'desc')->value('id'); // gets only the id

Ou, si vous avez une colonne created_at avec la date, vous pouvez obtenir la valeur suivante

$maxValue = Cliente::latest()->value('id');

Documentation pertinente Laravel: https://laravel.com/docs/5.5/queries#aggregates

13
Matthew Mathieson