我的实体中有两个独特的属性:
/**
* @ORM\Column(type="string", length=100, unique=true, nullable=true)
*/
private $username;
/**
* @ORM\Column(type="string", length=80, unique=true)
* @Assert\Email()
*/
private $email;
我在课程的第一部分添加了唯一性注释:
/**
* @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 :(得分: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约束中指定它。