あなたのツリービルダーまたはその一部は、反復可能でなければなりません。したがって、フォームを可能な限り厳密に表現することによって、構成をビルダーに簡単にマップすることができます。それはyml
の形式を使用するのが最も簡単でしょう:
form:
name: 'exampleForm'
path: 'target_path'
fields:
fieldName:
type: 'TextType'
attr:
# some additional options
otherFieldName:
type: 'TextType'
attr:
# some additional options
は、より多くの情報のためのconfigコンポーネントの処理を参照してください:http://symfony.com/doc/current/components/config/definition.html#processing-configuration-values
加工した構成は、フォームの工場で扱うことができ、おそらくのようになります。これは
$config = $configuration->processConfiguration($config, FormType::class, null, $config['path']);
$formBuilder = $container->get('form.factory')->createNamedBuilder($config['name');
foreach ($config['fields'] as $field) {
$formBuilder->add($fieldName, $field['type'], $field['attr']);
}
$form = $formBuilder->createForm();
'formBuilder'を使用して、' treeBuilder'出力に基づいてフォームを動的に構築できますか? – Rvanlaak
どのように自動で可能ですか? –