Exemplo n.º 1
0
 /**
  * Modify the query with any possible query modifiers.
  * @param QueryBuilder             $builder
  * @param IndexDefinitionInterface $definition
  * @return Query
  */
 private function modifyQuery(QueryBuilder $builder, IndexDefinitionInterface $definition)
 {
     if ($definition->hasQueryModifier()) {
         $modifier = $this->queryModifierResolver->resolve($definition->getQueryModifier());
         $result = $modifier->modifyBuilder($builder);
         if ($result instanceof QueryBuilder) {
             $builder = $result;
         }
         $query = $builder->getQuery();
         $result = $modifier->modifyQuery($query);
         if ($result instanceof Query) {
             $query = $result;
         }
     } else {
         $query = $builder->getQuery();
     }
     return $query;
 }