<?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\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\OptionsResolver\OptionsResolver;
class DashboardFiltroType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
date_default_timezone_set("America/Mexico_City");
setlocale(LC_ALL, 'es_MX');
$builder
->add('date_inicio', DateType::class, [
'label' => 'Desde',
//'attr' => ['class' => 'form-control'],
'required' => true,
'widget' => 'single_text',
//'format' => 'yyyy-MM-dd',
'data' => new \DateTime(date_format(new \DateTime(), 'Y') . '-01-01'),
'attr' => ['class' => 'js-datepicker'],
])
;
$builder
->add('date_fin', DateType::class, [
'label' => 'Hasta',
//'attr' => ['class' => 'form-control'],
'required' => true,
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
'data' => new \DateTime(),
'attr' => ['class' => 'js-datepicker'],
])
;
$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');
}*/
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.nombre', 'ASC')
;
}
]);
}
});
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'anios' => '',
'unidad' => false,
]);
}
//Para subir formulario
}