强制字段不是必需的

2022-08-30 16:58:53

我正在使用Symfony2和FOSUserBundle。

正如文档中所详述的那样,我已经覆盖并创建了一个“name”属性在 User 实体中。

我做所有必要的工作,最后让该字段显示在窗体视图中。

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

我如何告诉Symfony2不要将该字段设为必填字段?我想它必须在这里:

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

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

或这里:

    /**
 * @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;

答案 1
$builder->add('name', 'text', array('label' => 'form.name','required' => false));

答案 2

尝试使用:

use Symfony\Component\Validator\Constraints\NotNull;


$builder->add('name', 'text', array('label' => 'form.name',
'constraints' => new NotNull()));

推荐