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...',
));
}
以下代码在 $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...',
));
}