<?php
namespace App\Form;
use App\Entity\User;
use App\Entity\Region;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use App\Entity\Convocatoria;
use App\Service\RacService;
use Doctrine\ORM\EntityRepository;
class NuevaPostulacionType extends AbstractType
{
private $racService;
private $run;
public function __construct(RacService $racService)
{
$this-> racService = $racService;
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$choices = $options['racService'];
$builder
->add('convocatoria', EntityType::class, [
'class' => Convocatoria::class,
'choice_label' => 'nombre',
'placeholder' => 'Seleccione una Convocatoria',
'required' => true,
'query_builder' => function (EntityRepository $repository) {
return $repository->createQueryBuilder('c')
->where('c.estado = :estado') // Por ejemplo, filtra convocatorias activas
->setParameter('estado', '1'); // Ordenar por nombre
},
])
->add('organizacion', ChoiceType::class, [
'choices' => $choices,
'placeholder' => 'Seleccione una Organizacion',
'required' => true,
])
->add('save', SubmitType::class, [
'label' => 'Guardar',
]);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
// 'data_class' => Postulacion::class,
//'validation_groups' => false,
'empty_data', null,
'csrf_protection' => true,
// the name of the hidden HTML field that stores the token
'csrf_field_name' => '_token',
// an arbitrary string used to generate the value of the token
// using a different string for each form improves its security
'csrf_token_id' => 'task_item',
'racService' => [],
]);
}
}