Exception SonataUserBundle FOSUserBundle Uniquentity电子邮件和;用户名

Exception SonataUserBundle FOSUserBundle Uniquentity电子邮件和;用户名,exception,unique,fosuserbundle,sonata-admin,sonata-user-bundle,Exception,Unique,Fosuserbundle,Sonata Admin,Sonata User Bundle,我有自己的用户类,它继承了索纳塔的BaseUser(Sonata\UserBundle\Entity\BaseUser) 我的问题:如果我尝试使用现有电子邮件从sonata admin创建用户,我会遇到以下异常: “创建对象失败:应用程序\Sonata\UserBundle\Entity\User” SQLSTATE[23505]:唯一冲突:7错误:重复键值违反唯一约束 详细信息:密钥(电子邮件\u规范)=(test@test.com)已经存在 我试着按照一些文档和票证中的建议使用Uniquen

我有自己的用户类,它继承了索纳塔的BaseUser
(Sonata\UserBundle\Entity\BaseUser)

我的问题:如果我尝试使用现有电子邮件从sonata admin创建用户,我会遇到以下异常:

“创建对象失败:应用程序\Sonata\UserBundle\Entity\User” SQLSTATE[23505]:唯一冲突:7错误:重复键值违反唯一约束 详细信息:密钥(电子邮件\u规范)=(test@test.com)已经存在

我试着按照一些文档和票证中的建议使用Uniquentity,使用正确的使用声明,但没有用

我在sonata admin的其他实体上使用Uniquentity注释没有问题,并且我在表单中得到一条很好的消息,通知用户已经有一个实体具有该名称/标题,而不是异常。但对于用户实体来说,它的工作方式完全不同

以下是我在AppKernel中注册sonata用户包的方式:

new Application\Sonata\UserBundle\ApplicationSonataUserBundle('FOSUserBundle') 
扩展FOSUserBundle

自定义用户实体中的use语句(由EasyExtends bundle生成,只是我添加了一些自定义列&与其他实体的一对多关系,如ex:Project):

这是用户类的注释:

/**
 * User
 *
 * @ORM\Table(name="fos_users")
 * @ORM\Entity
 * @UniqueEntity("username")
 * @UniqueEntity("username_canonical")
 * @UniqueEntity("email")
 * @UniqueEntity("email_canonical")
*/
这是我对sonata_用户的配置:

sonata_user:
    security_acl: true
    manager_type: orm
    class:
        user:  Application\Sonata\UserBundle\Entity\User
        group: Application\Sonata\UserBundle\Entity\Group
这是fos_用户的配置:

fos_user:
    db_driver:     orm
    firewall_name: admin, user
    user_class:    Application\Sonata\UserBundle\Entity\User
    group:
        group_class:   Application\Sonata\UserBundle\Entity\Group
        group_manager: sonata.user.orm.group_manager
    service:
        user_manager: sonata.user.orm.user_manager
我正在使用一个自定义的管理类

parameters:
    #use custom user admin class
    sonata.user.admin.user.class: Application\Sonata\UserBundle\Admin\Model\UserAdmin
(我也尝试过使用默认的admin类)

这是我的sonata管理配置:

索纳塔行政: 安全: 处理程序:sonata.admin.security.handler.acl 标题:我的应用 模板: 布局:CoreBundle:Admin:standard_layout.html.twig

我还尝试用自己的验证规则覆盖validation.yml/validation.xml文件。。。但是他们被忽视了或者类似的


我没有主意了。如果你能帮助我,我将非常感激

这对我来说很有用:

<?php
namespace Application\Sonata\UserBundle\Entity;

...
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
...

/**
 * User
 *
 * @ORM\Table(name="user")
 * @ORM\Entity()
 * @UniqueEntity("username")
 * @UniqueEntity("email")
 */
class User extends AbstractedUser implements UserInterface
...
<?php
namespace Application\Sonata\UserBundle\Entity;

...
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
...

/**
 * User
 *
 * @ORM\Table(name="user")
 * @ORM\Entity()
 * @UniqueEntity("username")
 * @UniqueEntity("email")
 */
class User extends AbstractedUser implements UserInterface
...
 * @UniqueEntity("username")
 * @UniqueEntity("email")