У меня есть Formtype
. В этом Formtype
я перехожу через options
-Array в функцию buildForm
ключ additionalName
. Я хочу добавить это значение в имя FormType
(в Symfony3 BlockPrefix). Но как я могу это установить?Symfony3: set Custom FormType "name"/"blockPrefix"
class AdultType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$additionalName = $options['additionalName'];
$builder
->add('account', TextType::class,array(
'label' => 'account',
'required' => false,
))
;
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'My\Bundle\WebsiteBundle\Model\Adult',
'csrf_protection' => true,
'cascade_validation' => true,
'name' => ""
));
}
/**
* @return string
*/
public function getBlockPrefix()
{
//Here I need the $options['additionalName']
return 'my_bundle_websitebundle_adult_'.$options['additionalName'];
}
Я попытался Allready установить переменную личное $additionalName;
на верхней части класса, установите его в функции buildForm
и получить к нему доступ с $this->additionalName
в getBlockPrefix
функции. Но значение в getBlockPrefix
пуст. Я думаю, что getBlockPrefix
вызывается перед buildForm
.
Тип является неоспоримым вызывается из другой формы:
$builder->add('adult', AdultType::class, array(
'additionalName' => $options['name']
));
Спасибо за любую помощь!
Каков фактический вариант использования, который вы хотите решить, динамически меняя префикс блока? – xabbuh