Faire un Random

Bienvenue sur cet article je vais vous montrer comment faire un random sur Symfony pour afficher des articles de blog ou produit sur votre site web en aléatoire. Pour ce faire il nous faudra rajouter une librairie et procéder à quelque étape facile et rapide à faire.

Etape 01 :

Pour faire un random avec Doctrine sur Symfony il va nous falloir installer une librairie developper par Beberlei la documentation directement sur le Github.

Pour l'installation il suffit de saisir cette ligne dans votre console.

composer require beberlei/doctrineextensions

 

Etape 02 :

Quand l'installation est fini il faut aller dans le fichier config/services.yaml pour y rajouter les lignes

doctrine:
     orm:
         dql:
             numeric_functions:
                 rand: DoctrineExtensions\Query\Mysql\Rand

 

Exemple :

Récupérer tous les objets d"une entité dans un ordre aléatoire :

$articles = $repository->createQueryBuilder('a')
            ->orderBy('RAND()')
            ->getQuery()
            ->execute();

Récupérer 3 objets aléatoires d'une entité :

$articles = $repository->createQueryBuilder('a')
            ->orderBy('RAND()')
            ->setMaxResults(3)
            ->getQuery()
            ->execute();