私はFormtype
です。このFormtype
の中でbuildForm
にあるoptions
- アレイの機能は、キーadditionalName
です。この値をFormType
Name(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'];
}
私はbuildForm
機能でそれを設定し、getBlockPrefix
機能で$this->additionalName
とそれへのアクセスを取得し、クラスの先頭に変数プライベート$additionalName;
を設定することが出回ってみました。しかし、getBlockPrefix
の値は空です。だから、buildForm
の前にgetBlockPrefix
が呼び出されたと思う。
タイプは別のフォームから呼び出さbeeingてさ:任意の助け
$builder->add('adult', AdultType::class, array(
'additionalName' => $options['name']
));
ありがとう!
ブロックプレフィックスを動的に変更して解決したい実際のユースケースは何ですか? – xabbuh