Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel - Paginer des enregistrements aléatoires

Lorsque vous plongez dans la documentation de mysql et recherchez la fonctionnalité RAND(), vous verrez que vous pouvez utiliser une "graine".

En utilisant une graine, vous obtiendrez toujours les mêmes résultats aléatoires.

Exemple :

$products = Product

    ::all()

    ->orderBy(DB::raw('RAND(1234)'))

    ->paginate(4);

Vous pouvez générer votre propre graine et la stocker dans une session ou quelque chose pour vous en souvenir.

Mettre à jour

Le le constructeur de requêtes Laravel a maintenant une fonction qui fait exactement la même chose :

$products = Product

    ::all()

    ->inRandomOrder('1234')

    ->paginate(4);