/** * Get the form (for filtering). * * @param Table $table * * @return FormView */ public function form(Table $table) { $form = $this->formFactory->createNamedBuilder($table->getId() . '_form'); //$this->formBuilder->set foreach ($table->getAllFilters() as $filter) { // selon le type de filtre switch ($filter::FILTER_TYPE) { case FilterCheckbox::FILTER_TYPE: $form->add($filter->getName(), \Symfony\Component\Form\Extension\Core\Type\CheckboxType::class, ['required' => false]); break; case FilterSelect::FILTER_TYPE: $form->add($filter->getName(), \Symfony\Component\Form\Extension\Core\Type\ChoiceType::class, ['required' => false, 'choices' => $filter->getChoices(), 'placeholder' => $filter->getPlaceholder()]); break; case Filter::FILTER_TYPE: default: $form->add($filter->getName(), \Symfony\Component\Form\Extension\Core\Type\TextType::class, ['required' => false]); break; } } // append special inputs (used for export csv for exemple) $form->add('sortColumn', \Symfony\Component\Form\Extension\Core\Type\HiddenType::class, ['required' => false]); $form->add('sortReverse', \Symfony\Component\Form\Extension\Core\Type\HiddenType::class, ['required' => false]); return $form->getForm()->createView(); }