Maison > base de données > tutoriel mysql > le corps du texte

Comment commander des hackathons Laravel par nombre de participants ?

Linda Hamilton
Libérer: 2024-11-10 02:45:02
original
298 Les gens l'ont consulté

How to Order Laravel Hackathons by Participant Count?

Laravel : Classement par nombre de relations

Dans ce cas, vous souhaitez trouver des hackathons triés en fonction du nombre de participants associés à chacun. La structure du tableau fournie et les définitions du modèle donnent un schéma relationnel clair.

La première tentative d'obtention du résultat, comme mentionné dans la question, contenait quelques défauts. Premièrement, il n'est pas recommandé de récupérer le nombre de modèles associés à l'aide de find, car cela charge rapidement la relation, ce qui peut s'avérer inefficace pour les grands ensembles de données. Deuxièmement, $this->id référencé dans la requête est incorrect, car il fait référence à l'instance de modèle utilisée pour effectuer la requête, et non à l'ID du hackathon.

Pour obtenir l'ordre souhaité, l'approche suivante utilisant Laravel Le chargement rapide et les relations nommées de 5.3 peuvent être utilisés :

Hackathon::withCount('participants')
    ->orderBy('participants_count', 'desc')
    ->paginate(10);
Copier après la connexion

En utilisant withCount, le nombre de participants associés est chargé avec impatience dans la requête, obtenant efficacement le nombre sans requêtes de base de données supplémentaires. La clause orderBy trie ensuite les résultats par ordre décroissant en fonction de l'attribut participants_count, fournissant ainsi les hackathons les plus populaires en fonction du nombre de participants.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal