Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * @param array $parameters
- * @param array $queryParams
- * @return mixed
- */
- public function findOneTypeCompaniesInCityBySlug(array $parameters, array $queryParams = [])
- {
- $qb = $this->createQueryBuilder('company')
- ->join('company.city', 'city')
- ->join('company.types', 'type')
- ->andWhere('city.slug = :citySlug')
- ->setParameter('citySlug', $parameters['citySlug'])
- ->andWhere('type.slug = :typeSlug')
- ->setParameter('typeSlug', $parameters['typeSlug'])
- ->andWhere('company.status = :statusEnabled')
- ->setParameter('statusEnabled', Company::STATUS_ENABLED);
- $this->addFilterByPostCode($qb, $queryParams);
- $this->addFilterByTags($qb, $queryParams);
- $this->addLimitsToQueryBuilder($qb, $queryParams);
- return $qb->getQuery()->getResult();
- }
- /**
- * @param QueryBuilder $qb
- * @param array $queryParams
- * @return QueryBuilder
- */
- private function addFilterByTags(QueryBuilder $qb, array $queryParams)
- {
- if (isset($queryParams['tags']) && !empty($queryParams['tags'])) {
- /** @var ArrayCollection $queryParams['tags'] */
- foreach ($queryParams['tags'] as $key => $tag) {
- $qb->andWhere(':tag' . $key . ' MEMBER OF company.tags')
- ->setParameter('tag' . $key, $tag);
- }
- }
- return $qb;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement