2016-02-05 58 views
0

我在實體上的兩個獨特的屬性:uniqueEntity多個字段

/** 
* @ORM\Column(type="string", length=100, unique=true, nullable=true) 
*/ 
private $username; 

/** 
* @ORM\Column(type="string", length=80, unique=true) 
* @Assert\Email() 
*/ 
private $email; 

我在第一類中添加uniqueentity註釋:

/** 
* @ORM\Entity 
* @UniqueEntity(fields = {"username"}, message="This user already exits") 
* @UniqueEntity(fields = {"email"}, message="This email already exists") 
*/ 
class User 

但電子郵件字段好的測試檢測數據庫中是否有相同的電子郵件,但用戶名不是。

我在做什麼錯了?

感謝

問候

編輯:

public function buildForm(FormBuilderInterface $builder, array $options) { 
     $builder 
       ->add('email', 'text', array('label' => 'form.label.email', 'attr' => array('placeholder' => 'form.placeholder.email'))) 
       ->add('username', 'text', array('label' => 'form.label.username', 'attr' => array('placeholder' => 'form.placeholder.username'))) 
... 

->add('envoyer', 'submit', array('label' => 'form.submit', 'attr' => array('class' => 'col-lg-12 col-xs-12 btn btn-primary submit'))) 
      ; 

回答

0

如果你想唯一的電子郵件和獨特的用戶名 「獨立」

/** 
* @ORM\Entity 
* @UniqueEntity(fields="username", message="This user already exits"[, groups={"grp_name"}]) 
* @UniqueEntity(fields="email", message="This email already exists"[, groups={"grp_name"}]) 
*/ 
class User 

如果您使用的確認團組財產表單 - 然後你必須在UniqueEntity約束中指定它。

+0

我試過這個,但現在也沒有電子郵件,也沒有用戶名工作。 * @ORM \ Entity * @ORM \ Table(name =「Utilisateur」,uniqueConstraints = {@ ORM \ UniqueConstraint(name =「some_name」,columns = {「username」,「email」}))) – anubis

+0

Did你更新數據庫模式? –

+0

是的,我已經做到了。 – anubis