src/Repository/OrlOfficeRepository.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\OrlOffice;
  4. use Doctrine\Persistence\ManagerRegistry;
  5. /**
  6.  * @method OrlOffice|null find($id, $lockMode = null, $lockVersion = null)
  7.  * @method OrlOffice|null findOneBy(array $criteria, array $orderBy = null)
  8.  * @method OrlOffice[]    findAll()
  9.  * @method OrlOffice[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  10.  */
  11. class OrlOfficeRepository extends AbstractEntityRepository
  12. {
  13.     public function __construct(ManagerRegistry $registry)
  14.     {
  15.         parent::__construct($registryOrlOffice::class);
  16.     }
  17.     /**
  18.      * find all the ORL office around a given point (lat/lon). Return 4 results by default (could be changed with $limit param)
  19.      * @param $latitude
  20.      * @param $longitude
  21.      * @param $distance
  22.      * @param int $limit
  23.      * @return mixed
  24.      */
  25.     public function findActiveOrlOfficesAroundLocation($latitude$longitude$distance$limit=4) {
  26.         // only valid ORL offices
  27.         $qb $this->createQueryBuilder('o')
  28.             ->andWhere('o.state = :state')
  29.             ->andWhere('o.deletedAt is NULL')
  30.             ->setParameters(['state' => 'valid']);
  31.         $qb $this->addPositionCriteria($qb$latitude$longitude$distance);
  32.         $qb->setMaxResults($limit);
  33.         return $qb->getQuery()->getResult();
  34.     }
  35. }