/** * A listener for the filter type filterName. * * @param ApplyFilterEvent $event A LexikFormFilter event */ public function filterName(ApplyFilterEvent $event) { $qb = $event->getQueryBuilder(); $expr = $event->getFilterQuery()->getExpr(); $values = $event->getValues(); if (!empty($values['value'])) { $qb->andWhere($expr->orX()->add($expr->like('p.name', "'%" . $values['value'] . "%'"))); } }
/** * Apply a filter for a filter_locale type. * * This method should work whih both ORM and DBAL query builder. */ public function filterTextLike(ApplyFilterEvent $event) { $qb = $event->getQueryBuilder(); $expr = $event->getFilterQuery()->getExpressionBuilder(); $values = $event->getValues(); if ('' !== $values['value'] && null !== $values['value']) { if (isset($values['condition_pattern'])) { $qb->andWhere($expr->stringLike($event->getField(), "%" . $values['value'] . "%", $values['condition_pattern'])); } else { $qb->andWhere($expr->stringLike($event->getField(), "%" . $values['value'] . "%")); } } }