<?php
namespace App\Repository\Admin;
use App\Entity\Admin\Entiteeconomique;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
use phpDocumentor\Reflection\Types\Null_;
/**
* @method Entiteeconomique|null find($id, $lockMode = null, $lockVersion = null)
* @method Entiteeconomique|null findOneBy(array $criteria, array $orderBy = null)
* @method Entiteeconomique[] findAll()
* @method Entiteeconomique[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class EntiteeconomiqueRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Entiteeconomique::class);
}
/**
* @param $categories
* @param $ile
* @return mixed
*/
public function showByCategoriesAndIle($categories, $ile, $param1)
{
$query = $this->createQueryBuilder('e');
$query = $query
->leftJoin('e.categories', 'cat')
->andWhere('cat.id IN (:categories)')
->setParameter('categories', $categories)
->orderBy('e.designation', 'ASC')
;
if ($ile and $ile != 'km'){
$query = $query->leftJoin('e.iles', 'i')
->andWhere('i.parametre LIKE :parametre')
->setParameter('parametre', '%'.$ile.'%');
}
if ($param1 and $param1 == 'sites_touristiques'){
$query = $query->andWhere('e.is_sitetouristique = 1')
;
}
return $query->getQuery()
->getResult();
}
public function showByCategoriesAndOtherIle($categories, $ile)
{
$query = $this->createQueryBuilder('e');
$query = $query
->leftJoin('e.categories', 'cat')
->andWhere('cat.id IN (:categories)')
->setParameter('categories', $categories)
;
if ($ile and $ile != 'km'){
$query = $query->leftJoin('e.iles', 'i')
->andWhere('i.parametre NOT LIKE :parametre')
->setParameter('parametre', '%'.$ile.'%');
}
return $query->getQuery()
->setMaxResults(7)
->getResult();
}
public function findByIle($iles)
{
return $this->createQueryBuilder('e')
->leftJoin('e.iles', 'i')
->andWhere('i.id IN (:iles)')
->andWhere('e.is_actif = true')
->setParameter('iles', $iles)
->getQuery()
->getResult()
;
}
}