修改 Form 中的 Symfony Form 组件选择 class

Modifing Symfony Form component choices inside the Form class

我想知道 correct/standard 修改下拉框内容的方法 SF2 表单 class.

我希望键与数组相同,如下面的标记所示。

是否应该在回调中完成,而不是像我正在做的那样在调用 $builder->add 之前完成?

/**
 * @param FormBuilderInterface $builder
 * @param array                $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    foreach ($options['importDirectories'] as $key => $value) {
        $formattedImportDirectories[$options['importDirectories'][$key]] = $value;
    }

    $builder
        ->add('importDirectory', 'choice', [
            'label'   => 'Import Directory',
            'choices' => $formattedImportDirectories
        ]);
}

产生这样的下拉菜单。

<select class="form-control" name="import_directory_type[importDirectory]" id="import_directory_type_importDirectory">
    <option value="14-products">14-products</option>
    <option value="14-course">14-course</option>
    <option value="14-accessories">14-accessories</option>
</select>

答案很简单,不需要回调:

'choices' => array_combine($options['importDirectories'], $options['importDirectories']);