RealisateurRepository.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Repository;
  3. /**
  4. * RealisateurRepository
  5. *
  6. * This class was generated by the Doctrine ORM. Add your own custom
  7. * repository methods below.
  8. */
  9. class RealisateurRepository extends \Doctrine\ORM\EntityRepository
  10. {
  11. public function findByNom($nom)
  12. {
  13. $qb = $this->createQueryBuilder ('r');
  14. $expr = $qb->expr();
  15. $query = $qb
  16. ->select('r.id', 'r.nom', 'r.prenom')
  17. ->where(
  18. $expr->like('r.nom', ':nom'))
  19. ->setParameter('nom', $nom.'%')
  20. ->getQuery();
  21. return $query->getResult();
  22. }
  23. public function findByNomComplet($nomComplet)
  24. {
  25. $qb = $this->createQueryBuilder ('r');
  26. $expr = $qb->expr();
  27. $tableau = explode(' ', $nomComplet);
  28. if (count($tableau) == 1) {
  29. $premier = $tableau[0];
  30. $orPremier = $expr->orX(
  31. $expr->like('r.nom', ':premier'),
  32. $expr->like('r.prenom', ':premier')
  33. );
  34. $andExpression = $expr->andX($orPremier);
  35. $qb->setParameter('premier', $premier.'%');
  36. }
  37. if (count($tableau) > 1) {
  38. $premier = $tableau[0];
  39. $deuxieme = $tableau[1];
  40. $orPremier = $expr->orX(
  41. $expr->eq('r.nom', ':premier'),
  42. $expr->eq('r.prenom', ':premier')
  43. );
  44. $orDeuxieme = $expr->orX(
  45. $expr->like('r.nom', ':deuxieme'),
  46. $expr->like('r.prenom', ':deuxieme')
  47. );
  48. $andExpression = $expr->andX($orPremier, $orDeuxieme);
  49. $qb
  50. ->setParameter('premier', $premier)
  51. ->setParameter('deuxieme', $deuxieme.'%');
  52. }
  53. $query = $qb
  54. ->select('r.id', 'r.nom', 'r.prenom')
  55. ->where($andExpression)
  56. ->getQuery();
  57. return $query->getResult();
  58. }
  59. public function findNomsComplets ()
  60. {
  61. $qb = $this->createQueryBuilder('r');
  62. $query = $qb
  63. ->select('r.nomComplet')
  64. ->getQuery();
  65. return $query->getArrayResult();
  66. }
  67. }