src/Form/Custom/DepartamentTypeSelectorType.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Form\Custom;
  3. use App\Entity\Forms;
  4. use App\Entity\Departamentos;
  5. use App\Manager\DepartamentosManager;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  8. use Symfony\Component\Form\ChoiceList\ChoiceList;
  9. use Symfony\Component\OptionsResolver\OptionsResolver;
  10. class DepartamentTypeSelectorType  extends AbstractType
  11. {
  12.     private DepartamentosManager $dm;
  13.     /**
  14.      * @param DepartamentosManager $formsManager
  15.      */
  16.     public function __construct(DepartamentosManager $dm)
  17.     {
  18.         $this->dm $dm;
  19.     }
  20.     public function getParent(): string
  21.     {
  22.         return ChoiceType::class;
  23.     }
  24.     public function configureOptions(OptionsResolver $resolver)
  25.     {
  26.         $documentTypes $this->documentTypesArray();
  27.         $resolver->setDefaults([
  28.             'placeholder' => 'Departamento*',
  29.             'choices' => $documentTypes,
  30.         ]);
  31.     }
  32.     protected function documentTypesArray(): array
  33.     {
  34.         /** @var DepartamentosManager $dm */
  35.         $documentTypes $this->dm->listActive();
  36.         $documentTypesArray = [];
  37.         foreach ($documentTypes as $documentType) {
  38.             $documentTypesArray[$documentType->getTitulo()] = $documentType->getTitulo();
  39.         }
  40.         return $documentTypesArray;
  41.     }
  42. }