Treebuilder của bạn hoặc một phần của nó, sẽ phải lặp lại được. Vì vậy, bằng cách cho phép nó đại diện cho một hình thức nghiêm ngặt nhất có thể, bạn có thể sử dụng nó để dễ dàng ánh xạ cấu hình cho người xây dựng. Nó sẽ là dễ nhất để sử dụng định dạng yml
:
form:
name: 'exampleForm'
path: 'target_path'
fields:
fieldName:
type: 'TextType'
attr:
# some additional options
otherFieldName:
type: 'TextType'
attr:
# some additional options
Xem phần chế biến của các thành phần cấu hình để biết thêm: http://symfony.com/doc/current/components/config/definition.html#processing-configuration-values
Cấu hình xử lý sau đó có thể được xử lý với các nhà máy thức và có lẽ sẽ trông giống như này:
$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();
Bạn có thể sử dụng 'formBuilder' để tự động tạo biểu mẫu dựa trên đầu ra' treeBuilder'? – Rvanlaak
Làm cách nào để có thể tự động? –