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. P> voici ma table p> résultat que ma requête me donne p> résultat que je veux p>
3 Réponses :
Essayez ceci:
$products = Product::whereNotNull('user_id') ->orderBy('id','desc') ->get() ->unique('user_id');
Hey, Yasin, votre première solution a fonctionné mais n'est pas retourné objet éloquent et la deuxième solution ne fonctionne pas ......
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
Vérifiez Laravel Docs
Dernier / aîné fort>
de
Les méthodes Dernières code> et
Oilest code> vous permettent de commander facilement des résultats par date. Par défaut, le résultat sera commandé par la colonne
créée_at code>. Ou, vous pouvez transmettre le nom de la colonne que vous souhaitez trier par: p>
Dupliqué possible de commandez par avant le groupe en utilisant Eloquant (Laravel) A >