Symfony 2表格现场无线电要求=假?

use*_*980 4 forms choice symfony doctrine-orm

这是我的实体类的一部分:

/**
 * @var integer
 *
 * @ORM\Column(name="student", type="integer", nullable=true)
 */
private $student;
Run Code Online (Sandbox Code Playgroud)

我的表单类的这部分:

 $builder
    ->add('student', 'choice', ['label'=> false,
    'expanded' => true,
    'choices' => (Array)new StudentEnum(),
   ])
        ;
Run Code Online (Sandbox Code Playgroud)

广告这是输出:

<input id="xxxxx_0" type="radio" value="4" required="required" name="xxxxx[student]">
<label class="required" for="xxxxxV_student_0">Nie</label>
Run Code Online (Sandbox Code Playgroud)

...

我的问题是我的输入标签不应该具有属性"required"因为我在实体中设置了nullable = true.

use*_*980 17

解决方案是required => falseempty_value => false

$builder
        ->add('student', 'choice', [
                'label'=> false,
                'expanded' => true,
                'choices' => (Array)new StudentEnum(),
                'required' => false,
                'empty_value' => false
        ]);
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案在Symfony 2.8之前是好的,那么你必须使用"占位符"选项,因为"empty_value"已在2.7中被弃用(并在3.0中删除) (6认同)