强制不要求字段

ElP*_*ter 21 php symfony fosuserbundle

我正在使用Symfony2和FOSUserBundle.

正如文档中详述的那样,我已在User实体中覆盖并创建了"name"属性.

我做了所有必要的事情,最后让这个字段显示在表单视图中.

问题是:当我去form_widget(form.name)生成输入html标签时,会在其中生成required ="required"属性.这会导致引擎在未填充字段时将输入变为红色.

如何告诉Symfony2不要强制使用该字段?我猜它必须在这里:

        parent::buildForm($builder, $options);

    // add your custom field
    $builder->add('name', 'text', array('label' => 'form.name'));
    $builder->remove('username');
Run Code Online (Sandbox Code Playgroud)

或者在这里:

    /**
 * @ORM\Column(type="string", length="255")
 *
 * @Assert\MinLength(limit="0", message="The name is too short.", groups={"Registration", "Profile"})
 * @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"})
 */
private $name;
Run Code Online (Sandbox Code Playgroud)

Car*_*dos 51

$builder->add('name', 'text', array('label' => 'form.name','required' => false));
Run Code Online (Sandbox Code Playgroud)

  • +1 - 也许有必要补充一点,这只是停止表单元素上的HTML5验证.来自您实体的所有断言等仍然处于打开状态,并且在实体可以保留之前必须仍然有效. (6认同)
  • 有没有办法通过验证组来做到这一点?我似乎无法使它们影响html5所需的属性,这使得验证组对我来说毫无用处. (4认同)