Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function sort(DataSourceBuilderInterface $builder, GridInterface $grid, array $sorting)
 {
     foreach ($sorting as $name => $order) {
         if (!$grid->hasSort($name) || !in_array($order, [self::ASC, self::DESC], true)) {
             continue;
         }
         $sort = $grid->getSort($name);
         $types = $this->resolveTypes($sort->getType());
         $resolver = new OptionsResolver();
         foreach ($types as $type) {
             $type->configureOptions($resolver);
         }
         reset($types)->sort($order, $resolver->resolve(array_merge(['builder' => $builder, 'grid' => $grid, 'sort' => $sort], $sort->getOptions())));
     }
 }