Symfony-FosUserBundle使电子邮件为空不起作用



我正在尝试使电子邮件字段nullable。我在这里搜索并发现通过属性覆盖使其nullable。它工作了,在用户数据库表上它是nullable.但是,在注册页面上,当我将电子邮件字段留空时,我得到">请输入电子邮件">

用户.php

/**
* @ORMEntity
* @ORMTable(name="fos_user")
*
* @ORMAttributeOverrides({
*     @ORMAttributeOverride(
*         name="email", 
*         column=@ORMColumn(nullable=true)
*     ),
*     @ORMAttributeOverride(
*         name="emailCanonical",
*         column=@ORMColumn(nullable=true, unique=false)
*     )
* })
*
*
*/
class User extends BaseUser
{
// ...
}

注册表单类型.php

->add('email', NULL,  array( 'required'   => false, 'label' => false, ))

在RegisterFormType 中对此进行更改.php

->add('email', LegacyFormHelper::getType('SymfonyComponentFormExtensionCoreTypeEmailType'), array( 'required'   => false, 'label' => 'form.email', 'translation_domain' => 'FOSUserBundle'))

FosUserBundle 使用 XML 进行约束。通过覆盖资源 fosuserbundle/resources/config/validation 来创建您自己的文件.xml

最新更新