【问题标题】:uniqueEntity multiple fieldsuniqueEntity 多个字段
【发布时间】:2016-02-05 11:08:05
【问题描述】:

我的实体中有两个独特的属性:

/**
 * @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')))
            ;

【问题讨论】:

    标签: php symfony entity


    【解决方案1】:

    如果您想要“独立”的唯一电子邮件和唯一用户名

    /**
     * @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 约束中指定它。

    【讨论】:

    • 我试过了,但现在电子邮件和用户名都不起作用。 * @ORM\Entity * @ORM\Table(name="Utilisateur",uniqueConstraints={@ORM\UniqueConstraint(name="some_name", columns={"username", "email"})})
    • 我再次阅读您的问题,我可能被误解了。让我们明确一点 - 您想要拥有唯一的电子邮件和唯一的用户名(没有相同的电子邮件和没有相同的用户名)还是唯一的名称/电子邮件组合(如果用户名不同,用户可以拥有相同的电子邮件)?
    • 在我的数据库中,每封电子邮件我只能有一次。并且每个用户名只有一次。
    • 这和我的第一个问题一样,电子邮件可以正常工作,但用户名不行。
    • 我不确定是否在您的案例中使用验证组。完全相同的代码现在在我的测试环境中工作。你清除缓存了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2017-07-21
    • 2012-06-14
    相关资源
    最近更新 更多