src/Form/Custom/DocumentTypeSelectorType.php line 11

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