src/Repository/MachineRepository.php line 52

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Machine;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\ORM\QueryBuilder;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. /**
  8.  * @method Machine|null find($id, $lockMode = null, $lockVersion = null)
  9.  * @method Machine|null findOneBy(array $criteria, array $orderBy = null)
  10.  * @method Machine[]    findAll()
  11.  * @method Machine[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  12.  */
  13. class MachineRepository extends ServiceEntityRepository
  14. {
  15.     public function __construct(ManagerRegistry $registry)
  16.     {
  17.         parent::__construct($registryMachine::class);
  18.     }
  19.     public function validated()
  20.     {
  21.         return $this->createQueryBuilder('m')
  22.             ->innerJoin('m.category''cat')
  23.             ->where('m.active = 1')
  24.             ->andWhere('cat.active = 1')
  25.             ;
  26.         ;
  27.     }
  28.     public function bySlug(string $slug)
  29.     {
  30.         $qb $this->validated();
  31.         if($slug)
  32.             $qb
  33.             ->select('m, cat')
  34.             ->andWhere('m.slug = :slug')
  35.             ->setParameter('slug'$slug);
  36.         else
  37.             $qb->addOrderBy('m.position''ASC');
  38.         $qb->setMaxResults(1);
  39.         return $qb->getQuery()->getOneOrNullResult();
  40.     }
  41.     public function listByCategory(string $slug null)
  42.     {
  43.         $qb $this->validated();
  44.         if ($slug) {
  45.             $qb
  46.             ->select('m, cat')
  47.             ->andWhere('cat.slug = :slug')
  48.             ->setParameter('slug'$slug)
  49.             ->addOrderBy('m.position''ASC')
  50.             ;
  51.         } else {
  52.             $qb
  53.             ->select('m, cat')
  54.             ->addOrderBy('m.position''ASC')
  55.             ;
  56.         }
  57.         return $qb->getQuery()->getResult();
  58.     }
  59.     /*
  60.     public function validated()
  61.     {
  62.         return $this->createQueryBuilder('c')
  63.             ->where('c.active = 1')
  64.             ->leftJoin('c.subservices', 'sub', 'WITH', 'sub.active = 1');
  65.         ;
  66.     }
  67.     public function listActive()
  68.     {
  69.         $qb = $this->validated()
  70.             ->select('c, sub')
  71.             ->addOrderBy('c.position', 'ASC');
  72.         return $qb->getQuery()->getResult();
  73.     }
  74.     public function listActiveMenu()
  75.     {
  76.         $qb = $this->validated()
  77.             ->select('c')
  78.             ->andWhere('c.active_menu = 1')
  79.             ->addOrderBy('c.position', 'ASC')
  80.             ;
  81.         return $qb->getQuery()->getResult();
  82.     }
  83.     public function bySlug(string $slug)
  84.     {
  85.         $qb = $this->validated();
  86.         if($slug)
  87.             $qb
  88.             ->select('c, sub')
  89.             ->andWhere('c.slug = :slug')
  90.             ->setParameter('slug', $slug);
  91.         else
  92.             $qb->addOrderBy('c.position', 'ASC');
  93.         $qb->setMaxResults(1);
  94.         return $qb->getQuery()->getOneOrNullResult();
  95.     }
  96.     */
  97. }