/** * {@inheritdoc} */ public function applyFilter(QueryBuilder $qb, array $data, array $options) { self::$filterCount++; $alias = $qb->getRootAliases()[0]; if ($options['mode'] === self::MODE_DEFAULT) { $qb->andWhere(FilterOperator::buildExpression($alias . '.' . $data['property_path'], $data['operator'], ':filter_' . self::$filterCount))->setParameter('filter_' . self::$filterCount, FilterOperator::buildParameter($data['operator'], $data['value'])); } else { $value = $options['mode'] === self::MODE_IS_NULL ? $data['value'] : !$data['value']; $operator = $value ? FilterOperator::IS_NULL : FilterOperator::IS_NOT_NULL; $qb->andWhere(FilterOperator::buildExpression($alias . '.' . $data['property_path'], $operator, ':filter_' . self::$filterCount)); } }
/** * {@inheritdoc} */ public function applyFilter(QueryBuilder $qb, array $data, array $options) { self::$filterCount++; $alias = $qb->getRootAliases()[0]; $qb->andWhere(FilterOperator::buildExpression($alias . '.' . $data['property_path'], $data['operator'], ':filter_' . self::$filterCount))->setParameter('filter_' . self::$filterCount, FilterOperator::buildParameter($data['operator'], $data['value'])); }