<?php
namespace App\Form\Custom;
use App\Entity\Service;
use App\Manager\ServiceManager;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ServiceTypeSelectorType extends AbstractType
{
private ServiceManager $serviceManager;
/**
* @param ServiceManager $serviceManager
*/
public function __construct(ServiceManager $serviceManager)
{
$this->serviceManager = $serviceManager;
}
public function getParent(): string
{
return ChoiceType::class;
}
public function configureOptions(OptionsResolver $resolver)
{
$serviceTypes = $this->serviceTypesArray();
$resolver->setDefaults([
'placeholder' => 'Seleccione servicio',
'choices' => $serviceTypes,
]);
}
protected function serviceTypesArray(): array
{
/** @var Service $forms */
$services = $this->serviceManager->listActive();
$servicesArray = [];
foreach ($services as $service) {
$servicesArray[$service->getTitle()] = $service->getTitle();
}
return $servicesArray;
}
}