0
votes

Groupe de Laravel par récupération du dernier record de la table

J'ai une table où je veux récupérer le groupe de données par l'utilisateur, mais je veux la dernière entrée en résultat Comment puis-je faire cela en utilisant Eloquant.

Voici une requête éloquente que j'utilise. xxx

voici ma table xxx

résultat que ma requête me donne xxx

résultat que je veux xxx


3 Réponses :


1
votes

Essayez ceci:

$products = Product::whereNotNull('user_id')
             ->orderBy('id','desc')
             ->get()
             ->unique('user_id');


1 commentaires

Hey, Yasin, votre première solution a fonctionné mais n'est pas retourné objet éloquent et la deuxième solution ne fonctionne pas ......



2
votes
Product::whereRaw('id IN (select MAX(id) FROM products GROUP BY user_id)')
         ->whereNotNull('user_id')
         ->orderBy('id','desc')
         ->get();
You will need a nested query for that, i don't think you can avoid it but this solution should work. GroupBy happens before OrderBy so you have to get your last record before you do your ordering 

0 commentaires

0
votes

Vérifiez Laravel Docs

Dernier / aîné de
Les méthodes Dernières et Oilest vous permettent de commander facilement des résultats par date. Par défaut, le résultat sera commandé par la colonne créée_at . Ou, vous pouvez transmettre le nom de la colonne que vous souhaitez trier par: xxx


0 commentaires