Maison  >  Article  >  développement back-end  >  Comment récupérer une ligne aléatoire dans Laravel en utilisant Eloquent ou Fluent ?

Comment récupérer une ligne aléatoire dans Laravel en utilisant Eloquent ou Fluent ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-11 22:36:03301parcourir

How to Retrieve a Random Row in Laravel Using Eloquent or Fluent?

Récupération de lignes aléatoires dans Laravel à l'aide d'Eloquent ou Fluent

Récupérer une ligne aléatoire à partir d'une base de données peut être une opération utile dans divers scénarios. Laravel propose deux méthodes principales pour y parvenir : Eloquent et Fluent. Cet article explore comment utiliser ces méthodes pour récupérer efficacement une ligne aléatoire dans Laravel.

Eloquent

Pour les versions 5.2 et supérieures de Laravel, la méthode inRandomOrder() fournit un moyen pratique de sélectionner une ligne aléatoire. Appelez simplement cette méthode sur le modèle souhaité :

$randomUser = User::inRandomOrder()->get();

Cela renverra une instance aléatoire du modèle User. Vous pouvez également spécifier le nombre de lignes aléatoires à récupérer à l'aide de la méthode limit() :

$randomUsers = User::inRandomOrder()->limit(5)->get();

Fluent

Pour les versions antérieures à Laravel 5.2, Fluent propose un méthode alternative pour récupérer des lignes aléatoires à l'aide de la méthode orderByRaw() :

// Laravel 5.1 and below
$randomUser = User::orderByRaw(DB::raw('RAND()'))->get();

Random Record Récupération sans nombre de lignes

L'objectif de récupérer une ligne aléatoire sans effectuer d'opération de comptage découle de considérations de performances. Compter le nombre d’enregistrements peut s’avérer coûteux en termes de calcul pour les grands ensembles de données. En utilisant la fonction RAND() en SQL, nous pouvons obtenir efficacement une ligne aléatoire sans encourir la surcharge de comptage.

Conclusion

Les méthodes présentées dans cet article fournissent des moyens efficaces pour récupérer une ligne aléatoire dans Laravel en utilisant Eloquent ou Fluent. La méthode inRandomOrder() dans Laravel 5.2 et versions ultérieures est l'approche préférée et la plus simple. Pour les versions antérieures, Fluent propose une alternative viable via la méthode orderByRaw().

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!

Déclaration:
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