src/Repository/VehicleModelRepository.php line 50
<?phpnamespace App\Repository;use App\Entity\BlogKind;use App\Entity\Dealer;use App\Entity\VehicleCategory;use App\Entity\VehicleKind;use App\Entity\VehicleManufacturer;use App\Entity\VehicleModel;use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;use Doctrine\Persistence\ManagerRegistry;/*** @extends ServiceEntityRepository<VehicleModel>** @method VehicleModel|null find($id, $lockMode = null, $lockVersion = null)* @method VehicleModel|null findOneBy(array $criteria, array $orderBy = null)* @method VehicleModel[] findAll()* @method VehicleModel[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)*/class VehicleModelRepository extends ServiceEntityRepository{public function __construct(ManagerRegistry $registry){parent::__construct($registry, VehicleModel::class);}public function save(VehicleModel $entity, bool $flush = false): void{$this->getEntityManager()->persist($entity);if ($flush) {$this->getEntityManager()->flush();}}public function remove(VehicleModel $entity, bool $flush = false): void{$this->getEntityManager()->remove($entity);if ($flush) {$this->getEntityManager()->flush();}}/*** @return VehicleModel[] Returns an array of VehicleCategory objects*/public function findActive( VehicleManufacturer $manufacturer = null,VehicleCategory $vehicleCategory = null, VehicleKind $vehicleKind = null): array{$return = $this->createQueryBuilder('vm')->leftJoin('vm.vehicles', 'vehicles')->andWhere('vehicles.visible = true')->leftJoin('vehicles.dealer', 'dealer')->andWhere('dealer.visible = true');if( $manufacturer ) {$return->andWhere('vehicles.manufacturer = :manufacturer')->setParameter('manufacturer', $manufacturer);}if( $vehicleCategory ) {$return->andWhere('vehicles.category = :vehicleCategory')->setParameter('vehicleCategory', $vehicleCategory);}if( $vehicleKind ) {$return->andWhere('vehicles.kind = :vehicleKind')->setParameter('vehicleKind', $vehicleKind);}return $return->orderBy('vm.name', 'ASC')->getQuery()->getResult();}/*** @return VehicleModel[] Returns an array of VehicleManufacturer objects*/public function findByDealerActive(Dealer $dealer, int $manufacturerId = null): array{$return = $this->createQueryBuilder('vm')->leftJoin('vm.vehicles', 'v')->andWhere('v.dealer = :dealer')->andWhere('v.visible = true')->setParameter('dealer', $dealer);if(isset($manufacturerId)) {$return->andWhere('vm.vehicleManufacturer = :manufacturer')->setParameter('manufacturer', $manufacturerId);}return $return ->orderBy('vm.name', 'ASC')->getQuery()->getResult();}public function findName(string $name): ?VehicleModel{return $this->createQueryBuilder('v')->andWhere('v.name LIKE :name')->setParameter('name', '%'.$name.'%')->setMaxResults(1)->getQuery()->getOneOrNullResult();}/*** @return VehicleModel[]*/public function findByManufacturerAndBlogKind(VehicleManufacturer $manufacturer, BlogKind $blogKind): array{return $this->createQueryBuilder('vm')->leftJoin('vm.blogs', 'b')->leftJoin('b.kinds', 'bk')->andWhere('bk = :blogKind')->andWhere('vm.vehicleManufacturer = :manufacturer')->andWhere('b.visible = true')->setParameter('blogKind', $blogKind)->setParameter('manufacturer', $manufacturer)->orderBy('vm.name', 'ASC')->getQuery()->getResult();}}