<?php
namespace App\Form\Custom;
use App\Entity\Forms;
use App\Entity\Departamentos;
use App\Manager\DepartamentosManager;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\ChoiceList\ChoiceList;
use Symfony\Component\OptionsResolver\OptionsResolver;
class DepartamentTypeSelectorType extends AbstractType
{
private DepartamentosManager $dm;
/**
* @param DepartamentosManager $formsManager
*/
public function __construct(DepartamentosManager $dm)
{
$this->dm = $dm;
}
public function getParent(): string
{
return ChoiceType::class;
}
public function configureOptions(OptionsResolver $resolver)
{
$documentTypes = $this->documentTypesArray();
$resolver->setDefaults([
'placeholder' => 'Departamento*',
'choices' => $documentTypes,
]);
}
protected function documentTypesArray(): array
{
/** @var DepartamentosManager $dm */
$documentTypes = $this->dm->listActive();
$documentTypesArray = [];
foreach ($documentTypes as $documentType) {
$documentTypesArray[$documentType->getTitulo()] = $documentType->getTitulo();
}
return $documentTypesArray;
}
}