나는 Formtype
입니다. 이 Formtype
에서 options
- 배열 buildForm
에있는 기능은 키 additionalName
입니다. 이 값을 FormType
이름 (Symfony3 BlockPrefix)에 추가하고 싶습니다. 그러나 이것을 어떻게 설정할 수 있습니까? Symfony3 : 사용자 정의 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'];
}
나는, 클래스의 상단에 변수 개인
$additionalName;
을 설정
buildForm
기능에서 설정하고
getBlockPrefix
기능에
$this->additionalName
와에 대한 액세스 권한을 얻을 수 allready했습니다. 그러나
getBlockPrefix
의 값은 비어 있습니다. 그래서
buildForm
전에
getBlockPrefix
이 호출 된 것 같습니다.
유형은 또 다른 형태의 호출에 beeing한다 : 어떤 도움
$builder->add('adult', AdultType::class, array(
'additionalName' => $options['name']
));
감사합니다!
블록 접두어를 동적으로 변경하여 해결하고자하는 실제 사용 사례는 무엇입니까? – xabbuh