<?php
namespace App\Form;
use App\Entity\Unidad;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\OptionsResolver\OptionsResolver;
class UnidadFiltroType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('filtro', HiddenType::class, ['data' => true])
;
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($options) {
$form = $event->getForm();
if ($options['unidad']) {
$form->add('unidad', EntityType::class, [
'label' => 'Unidad',
'class' => Unidad::class,
'placeholder' => 'Todas',
'attr' => [
'class' => 'form-control'
],
'query_builder' => function(EntityRepository $entityRepository){
return $entityRepository->createQueryBuilder('u')
->orderBy('u.nombre', 'ASC');
}
]);
}
});
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'unidad' => false,
]);
}
}