<?php
namespace App\Form\Custom;
use App\Entity\Forms;
use App\Manager\FormsManager;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\OptionsResolver\OptionsResolver;
class DocumentTypeSelectorType extends AbstractType
{
private FormsManager $formsManager;
/**
* @param FormsManager $formsManager
*/
public function __construct(FormsManager $formsManager)
{
$this->formsManager = $formsManager;
}
public function getParent(): string
{
return ChoiceType::class;
}
public function configureOptions(OptionsResolver $resolver)
{
$documentTypes = $this->documentTypesArray();
$resolver->setDefaults([
'placeholder' => 'Seleccione documento',
'choices' => $documentTypes,
]);
}
protected function documentTypesArray(): array
{
/** @var Forms $forms */
$forms = $this->formsManager->find(1);
$documentTypes = $forms->getDocumentTypes();
$documentTypesArray = [];
foreach ($documentTypes as $documentType) {
$documentTypesArray[$documentType['title']] = $documentType['title'];
}
return $documentTypesArray;
}
}