/**
  * @param QueryBuilder $query
  * @param ProductAttributeFacet $facet
  * @param Criteria $criteria
  * @return null|BooleanFacetResult
  */
 private function createBooleanFacetResult(QueryBuilder $query, ProductAttributeFacet $facet, Criteria $criteria)
 {
     $sqlField = 'productAttribute.' . $facet->getField();
     $query->select('COUNT(' . $sqlField . ')');
     /**@var $statement \Doctrine\DBAL\Driver\ResultStatement */
     $statement = $query->execute();
     $result = $statement->fetch(\PDO::FETCH_COLUMN);
     if (empty($result)) {
         return null;
     }
     return new BooleanFacetResult($facet->getName(), $facet->getFormFieldName(), $criteria->hasCondition($facet->getName()), $facet->getLabel());
 }
Exemplo n.º 2
0
 /**
  * @param QueryBuilder $query
  */
 private function rebuildQuery(QueryBuilder $query)
 {
     $query->resetQueryPart('orderBy');
     $query->resetQueryPart('groupBy');
     $query->innerJoin('product', 's_filter_articles', 'productProperty', 'productProperty.articleID = product.id');
     $query->groupBy('productProperty.valueID');
     $query->select('productProperty.valueID as id');
 }