Symfony2 选择字段:空值

Symfony2 choice field : empty value

我遇到了一个非常简单的问题,但我找不到我做错了什么:

我有一个实体 Post, 可以 有一个类型,在我的 class 声明中:

/**
 * @ORM\Column(name="type", type="text", nullable=true)
 */
private $type;

然后我想要一个表单来创建 Posts : 在我的 PostType::buildForm() 函数中:

$builder->add('type', 'choice', array(
        'empty_data' => null,
        'empty_value' => 'No type',
        'multiple' => false,
        'expanded' => true,
        'choices' => \MyBundle\Entity\Application\Post::getTypes(), /* returns array('TYPE1' => 'TYPE_1', 'TYPE2' => 'TYPE_2', ...) */
        'required' => true,))

计划是有一个电台列表:

但似乎如果我选择 'No type' 选项,表单将无法验证,并且不会给出任何明确的错误。同样的事情发生在 'required' => false,'placeholder' 而不是 'empty_value',...

你能发现我的错误吗? 我做错了什么?

谢谢:)

您不能在选择字段类型上有一个空值并将其设置为必填项。 你说它一定存在但可能是空的,自相矛盾

如果您放下 'required' => true

,它将起作用

我的错误不是来自 Type 或 Entity,而是来自 twig 小部件重载。

如果 {{ value }} 为空,我不会显示 value=""

确保 value="" 在您的 "None" 输入单选标签内,当然,也在您的其他输入单选标签内! 希望对某人有所帮助 ;)