/**
  * 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'] . "%'")));
     }
 }
Beispiel #2
0
 /**
  * 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'] . "%"));
         }
     }
 }