Symfony 3 Form EntityType 字段不接受空选择

Symfony 3 Form EntityType field does not take empty choices

以下代码在 $this->getChoices() return 一个空数组时保持加载。

$builder->add('username', EntityType::class, array(
        'class' => 'ApiBundle:User',
        'choice_label' => 'name',
        'label' => 'User',
        'choices' => $this->getChoices(),
        'required' => false,
        'placeholder' => 'Select...',
));

我知道一个解决方案是在选项为空时将 EntityType 更改为 ChoiceType。但是,想知道针对此问题的任何更好的修复方法。

下面是我解决的方法,如果有人知道更好的方法,请post您的回答。

 if($this->getChoices()) {
    $builder->add('username', EntityType::class, array(
            'class' => 'ApiBundle:User',
            'choice_label' => 'name',
            'label' => 'User',
            'choices' => $this->getChoices(),
            'required' => false,
            'placeholder' => 'Select...',
    ));
    } else {
    $builder->add('username', ChoiceType::class, array(
            'class' => 'ApiBundle:User',
            'choice_label' => 'name',
            'label' => 'User',
            'choices' => null,
            'required' => false,
            'placeholder' => 'Select...',
    ));
    }