<?php namespace App\Repository; use App\Entity\User; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Symfony\Bridge\Doctrine\RegistryInterface; /** * @method User|null find($id, $lockMode = null, $lockVersion = null) * @method User|null findOneBy(array $criteria, array $orderBy = null) * @method User[] findAll() * @method User[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) */ class UserRepository extends ServiceEntityRepository { public function __construct(RegistryInterface $registry) { parent::__construct($registry, User::class); } /** * @return User[] Returns an array of User objects */ public function findOrderByName() { $qb = $this->createQueryBuilder('p'); return $qb ->leftjoin('p.user', 'u') ->where('p.enabled = :enabled') ->setParameter('enabled', true) ->orderBy('u.lastname', 'ASC') ->getQuery() ->getResult() ; } /** * @param string $role * * @return User[] Returns an array of User objects */ public function findByRole($role) { $qb = $this->_em->createQueryBuilder(); $qb->select('u') ->from($this->_entityName, 'u') ->where('u.roles LIKE :roles') ->setParameter('roles', '%"'.$role.'"%'); return $qb->getQuery()->getResult(); } /** * @param string $prestataire * * @return User[] Returns an array of User objects */ public function findByPrestataire($prestataire) { $qb = $this->_em->createQueryBuilder(); $qb->select('u') ->from($this->_entityName, 'u') ->where($qb->expr()->isMemberOf(':presta', 'u.prestataires')) ->setParameter('presta', $prestataire); return $qb->getQuery()->getResult(); } }