| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- namespace App\Repository;
- use App\Entity\Realisateur;
- use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
- use Doctrine\Persistence\ManagerRegistry;
- /**
- * @extends ServiceEntityRepository<Realisateur>
- * @method Realisateur|null find($id, $lockMode = null, $lockVersion = null)
- * @method Realisateur|null findOneBy(array $criteria, array $orderBy = null)
- * @method Realisateur[] findAll()
- * @method Realisateur[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
- */
- class RealisateurRepository extends ServiceEntityRepository
- {
- public function __construct(ManagerRegistry $registry)
- {
- parent::__construct($registry, Realisateur::class);
- }
- public function findByNom(string $nom): array
- {
- $qb = $this->createQueryBuilder("r");
- $expr = $qb->expr();
- $query = $qb
- ->select("r.id", "r.nom", "r.prenom")
- ->where($expr->like("r.nom", ":nom"))
- ->setParameter("nom", $nom . "%")
- ->getQuery();
- return $query->getResult();
- }
- public function findByNomComplet(string $nomComplet): array
- {
- $qb = $this->createQueryBuilder("r");
- $expr = $qb->expr();
- $tableau = explode(" ", $nomComplet);
- if (count($tableau) == 1) {
- $premier = $tableau[0];
- $orPremier = $expr->orX(
- $expr->like("r.nom", ":premier"),
- $expr->like("r.prenom", ":premier"),
- );
- $andExpression = $expr->andX($orPremier);
- $qb->setParameter("premier", $premier . "%");
- }
- if (count($tableau) > 1) {
- $premier = $tableau[0];
- $deuxieme = $tableau[1];
- $orPremier = $expr->orX(
- $expr->eq("r.nom", ":premier"),
- $expr->eq("r.prenom", ":premier"),
- );
- $orDeuxieme = $expr->orX(
- $expr->like("r.nom", ":deuxieme"),
- $expr->like("r.prenom", ":deuxieme"),
- );
- $andExpression = $expr->andX($orPremier, $orDeuxieme);
- $qb->setParameter("premier", $premier)->setParameter(
- "deuxieme",
- $deuxieme . "%",
- );
- }
- $query = $qb
- ->select("r.id", "r.nom", "r.prenom")
- ->where($andExpression)
- ->getQuery();
- return $query->getResult();
- }
- public function findNomsComplets(): array
- {
- $qb = $this->createQueryBuilder("r");
- $query = $qb->select("r.nomComplet")->getQuery();
- return $query->getArrayResult();
- }
- public function findRealisateurLike(?string $query = null): ?array
- {
- $qb = $this->createQueryBuilder("r");
- $qb->where(
- $qb->expr()->like("r.nomComplet", ":realName"),
- )->setParameter("realName", "%" . $query . "%");
- return $qb->getQuery()->getResult();
- }
- }
|