src/Form/UnidadFiltroType.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Unidad;
  4. use Doctrine\ORM\EntityRepository;
  5. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  8. use Symfony\Component\Form\FormBuilderInterface;
  9. use Symfony\Component\Form\FormEvent;
  10. use Symfony\Component\Form\FormEvents;
  11. use Symfony\Component\OptionsResolver\OptionsResolver;
  12. class UnidadFiltroType extends AbstractType
  13. {
  14.     public function buildForm(FormBuilderInterface $builder, array $options): void
  15.     {
  16.         $builder
  17.             ->add('filtro'HiddenType::class, ['data' => true])
  18.         ;
  19.         $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($options) {
  20.             $form $event->getForm();
  21.             if ($options['unidad']) {
  22.                 $form->add('unidad'EntityType::class, [
  23.                     'label' => 'Unidad',
  24.                     'class' => Unidad::class,
  25.                     'placeholder' => 'Todas',
  26.                     'attr' => [
  27.                         'class' => 'form-control'
  28.                     ],
  29.                     'query_builder' => function(EntityRepository $entityRepository){
  30.                         return $entityRepository->createQueryBuilder('u')
  31.                             ->orderBy('u.nombre''ASC');
  32.                     }
  33.                 ]);
  34.             }
  35.         });
  36.     }
  37.     public function configureOptions(OptionsResolver $resolver): void
  38.     {
  39.         $resolver->setDefaults([
  40.             'unidad' => false,
  41.         ]);
  42.     }
  43. }