<?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 StoreSelectorType 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)
{
$storeTypes = $this->storeTypesArray();
$resolver->setDefaults([
'placeholder' => 'Seleccione sede',
'choices' => $storeTypes,
]);
}
protected function storeTypesArray(): array
{
/** @var Forms $forms */
$stores = $this->formsmanager->find(1)->getStoreTypes();
$storesArray = [];
foreach ($stores as $store) {
$storesArray[$store['title']] = $store['title'];
}
return $storesArray;
}
}