/** * {@inheritdoc} */ public function filter(DataSourceBuilderInterface $builder, GridInterface $grid, array $filters = []) { foreach ($filters as $name => $filter) { if (!$grid->hasFilter($name)) { continue; } $gridFilter = $grid->getFilter($name); $types = $this->resolveTypes($gridFilter->getType()); $resolver = new OptionsResolver(); foreach ($types as $type) { $type->configureOptions($resolver); } reset($types)->filter($filter, $resolver->resolve(array_merge(['filter' => $gridFilter, 'grid' => $grid, 'builder' => $builder], $gridFilter->getOptions()))); } }