Maison > Article > base de données > Comment trier les résultats d'une requête Laravel par nombre de modèles associés ?
Nombre de relations OrderBy dans Laravel
Dans Laravel, vous pouvez rencontrer des situations dans lesquelles vous devez trier les résultats de requête en fonction du nombre de modèles associés . L'un de ces scénarios consiste à récupérer les hackathons les plus populaires en fonction du nombre de participants associés à chaque hackathon.
Pour y parvenir, vous pouvez exploiter la méthode withCount() en conjonction avec orderBy(). Ce qui suit montre comment :
$hackathons = Hackathon::withCount('participants') ->orderBy('participants_count', 'desc') ->paginate(10);
Dans cet exemple, nous commençons par obtenir une collection de hackathons et chargeons avec impatience le nombre d'utilisateurs participants à l'aide de withCount('participants'). Nous utilisons ensuite orderBy('participants_count', 'desc') pour trier les résultats par ordre décroissant en fonction du nombre de participants. Enfin, nous paginons les résultats en groupes de 10 pour les afficher.
Cette approche récupère efficacement les hackathons les plus populaires et fournit l'ordre souhaité des résultats. Cela élimine le besoin de calculs manuels complexes ou de requêtes supplémentaires pour déterminer le nombre de participants pour chaque hackathon.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!