Example #1
0
 /**
  * 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();
 }