我使用FOSUserBundle为Symfony2中,我需要能够注册一个用户没有验证电子邮件是否是唯一的,我只需要一个有效的电子邮件地址,以便许多用户可以有相同的电子邮件(我知道这很奇怪,但我需要它)。如何Symfony2的束覆盖的实体
我的实体“用户”在一个捆绑延伸FOSUserBundle,是有可能覆盖emailCanonical的列定义消除唯一的参数,并从FormType删除验证?
我使用Annotation来映射我的实体和YML以验证我的表单。
我使用FOSUserBundle为Symfony2中,我需要能够注册一个用户没有验证电子邮件是否是唯一的,我只需要一个有效的电子邮件地址,以便许多用户可以有相同的电子邮件(我知道这很奇怪,但我需要它)。如何Symfony2的束覆盖的实体
我的实体“用户”在一个捆绑延伸FOSUserBundle,是有可能覆盖emailCanonical的列定义消除唯一的参数,并从FormType删除验证?
我使用Annotation来映射我的实体和YML以验证我的表单。
我发现了一些东西,它部分是解决方法,不是可行的解决方案。
问题分为两部分:表单和模型。
对于形式: 要覆盖FOSUserBundle登记表的唯一约束,您可以修改注册验证组在app /配置/ config.yml:
fos_user:
registration:
validation_groups: [YourValidationGroup]
对于模型: 我没有找到一个好的解决方案,而不覆盖所有的模型。 Doctrine2明确告诉你不能覆盖Mapped Class的属性。所以我做了一次迁移,用DoctrineMigrationBundle删除了唯一的约束索引...我对这个解决方案并不感到自豪,但它起作用,它让我保存了重复的电子邮件。
如果您有更好的解决方案,请不要犹豫!
几周前我有一个similar issue。唯一的解决办法是改为扩展实体模型:
use FOS\UserBundle\Model\User as BaseUser;
class User extends BaseUser
的缺点是,你也必须一切从用户FOS实体复制到用户的实体。另一方面,您可以根据需要调整功能。
的FOS用户实体包含不外乎:'抽象类用户扩展AbstractUser { }' 你的意思_The缺点是,你也必须一切从FOS用户模型复制到您的用户模型,然后有你的实体扩展你的新用户Model_? – carbocation
对不起,我想起初我误解了这个问题。我遇到了需要创建更多定制实体的情况。在我自己的包中,我创建了新的用户实体,该实体从FOSUserBundle扩展了'Model \ User'并覆盖了它的所有方法和变量。然后,我创建了属于不同验证组的新验证规则(通过同一实体中的注释)(如您在答案中所述)。我原来的问题在这里:https://github.com/FriendsOfSymfony/FOSUserBundle/issues/338。这与你所问的并不是同一个问题,但它可以帮助你。 –