Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. <?php
  2.  
  3. namespace EnergySolution\ApiBundle\Repository;
  4.  
  5. use Doctrine\ORM\QueryBuilder;
  6. use EnergySolution\ApiBundle\Entity\Company;
  7. use Pagerfanta\Pagerfanta;
  8. use Symfony\Component\Form\FormInterface;
  9. use Triotech\ApplicationBundle\Repository\EntityRepository;
  10.  
  11. class CompanyFilteredRepository extends EntityRepository
  12. {
  13. /**
  14. * @param Company $company
  15. * @param string|null $indexBy
  16. * @return QueryBuilder
  17. */
  18. public function getCompanyQueryBuilder(Company $company, $indexBy = null)
  19. {
  20. return $this->applyCompanyFilter($this->getQueryBuilder($indexBy), $company);
  21. }
  22.  
  23. /**
  24. * @param Company $company
  25. * @param FormInterface|null $filtersForm
  26. * @param array $sorting
  27. * @param boolean $deleted
  28. *
  29. * @return Pagerfanta
  30. */
  31. public function getCompanyPaginator(Company $company, $filtersForm = null, array $sorting = [], $deleted = false)
  32. {
  33. $qb = $this->applyCompanyFilter($this->getCustomQueryBuilder($filtersForm, $sorting, $deleted), $company);
  34.  
  35. return $this->createPaginator($qb);
  36. }
  37.  
  38. /**
  39. * @param QueryBuilder $qb
  40. * @param Company $company
  41. * @return QueryBuilder
  42. */
  43. protected function applyCompanyFilter(QueryBuilder $qb, Company $company)
  44. {
  45. $qb
  46. ->andWhere($qb->expr()->eq($this->getPropertyName('company'), ':company'))
  47. ->setParameter('company', $company)
  48. ;
  49.  
  50. return $qb;
  51. }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement