Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace EnergySolution\ApiBundle\Repository;
- use Doctrine\ORM\QueryBuilder;
- use EnergySolution\ApiBundle\Entity\Company;
- use Pagerfanta\Pagerfanta;
- use Symfony\Component\Form\FormInterface;
- use Triotech\ApplicationBundle\Repository\EntityRepository;
- class CompanyFilteredRepository extends EntityRepository
- {
- /**
- * @param Company $company
- * @param string|null $indexBy
- * @return QueryBuilder
- */
- public function getCompanyQueryBuilder(Company $company, $indexBy = null)
- {
- return $this->applyCompanyFilter($this->getQueryBuilder($indexBy), $company);
- }
- /**
- * @param Company $company
- * @param FormInterface|null $filtersForm
- * @param array $sorting
- * @param boolean $deleted
- *
- * @return Pagerfanta
- */
- public function getCompanyPaginator(Company $company, $filtersForm = null, array $sorting = [], $deleted = false)
- {
- $qb = $this->applyCompanyFilter($this->getCustomQueryBuilder($filtersForm, $sorting, $deleted), $company);
- return $this->createPaginator($qb);
- }
- /**
- * @param QueryBuilder $qb
- * @param Company $company
- * @return QueryBuilder
- */
- protected function applyCompanyFilter(QueryBuilder $qb, Company $company)
- {
- $qb
- ->andWhere($qb->expr()->eq($this->getPropertyName('company'), ':company'))
- ->setParameter('company', $company)
- ;
- return $qb;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement