public static function createFromConfig($name, Config $config) { $form = new static(); $form->setName($name); $form->setConfig($config); foreach ($form->getConfig()['form'] as $name => $field) { $newField = Forms::createField($field['type']); $newField->setName($name); $options = []; $options['label'] = isset($field['label']) ? $field['label'] : $name; if (isset($field['options'])) { $options = array_merge($options, $field['options']); } $newField->setOptions($options); $form->addField($newField); } return $form; }