pixidos/doctrine-query-object

Lightweight Doctrine QueryObject imlementation

1.0.0 2018-10-29 08:51 UTC

This package is auto-updated.

Last update: 2024-04-29 04:03:06 UTC


README

 public function withCategories(): self
 {
     
     $this->onPostFetch[] = function (QueryBuilder $qb, Iterator $iterator) {
         $qb->select('partial client.{id}')->from(Client::class, 'client')
            ->leftJoin('client.categories', 'categories')->addSelect('categories')
            ->andWhere('client.id IN (:ids)')
            ->setParameter('ids', $this->getIds($iterator))
            ->getQuery()->getResult();
     };
     
     
     return $this;
 }
 
 
 public function hasCategories(array $ids): self
 {
     if (empty($ids)) {
         throw new LogicException(sprintf('parameter %s::$ids can not be empty', __CLASS__));
     }
     
     $this->filters[] = function (QueryBuilder $qb) use ($ids) {
         $qb->andWhere('client.categorie IN (:catogeries)')
            ->setParameter('catogeries', $ids);
     };
     
     return $this;
 }
     
     
     
 protected function doCreateQuery(QueryBuilder $queryBuilder): QueryBuilder
 {
     $queryBuilder->select('client')
                  ->from(Client::class, 'client', 'client.id');
     
     $this->processSelects($queryBuilder);
     $this->processFilters($queryBuilder);
     
     return $queryBuilder;
 }