gpt4 book ai didi

symfony - 为什么我的 Symfony2 @UniqueEntity 约束根本不起作用?

转载 作者:行者123 更新时间:2023-12-04 02:32:08 25 4
gpt4 key购买 nike

我的应用程序中有以下实体类:

<?php

namespace ...;

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

/**
* @ORM\Table(name="sc_user")
* @ORM\Entity(repositoryClass="...\UserRepository")
* @ORM\HasLifecycleCallbacks()
* @UniqueEntity(fields={"email", "username"})
*/
class User implements UserInterface, \Serializable, EquatableInterface
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @var string $email
*
* @ORM\Column(name="email", type="string", length=255, unique=true)
*
* @Assert\NotBlank(groups={"registration"})
* @Assert\Email(groups={"registration"})
*/
private $email;

/**
* @var string $username
*
* @ORM\Column(name="username", type="string", length=32, unique=true)
*
* @Assert\NotBlank(groups={"registration"})
*/
private $username;

// ...
}

@UniqueEntity 约束被忽略。我尝试了不同的口味,包括:
@UniqueEntity(fields={"email", "username"})


@UniqueEntity(fields={"email"})
@UniqueEntity(fields={"username"})

并且,根据此处的 Symfony2 文档: http://symfony.com/doc/current/reference/constraints/UniqueEntity.html
@UniqueEntity("email")
@UniqueEntity("username")

我什么都不做,有效。我没有按预期收到表单验证错误,而是收到以下异常:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admin@scire.com' for key 'UNIQ_D8183973E7927C74'



这是错误的!有谁知道如何解决这个问题?

最佳答案

问题解决如下:

@UniqueEntity(fields={"email"}, groups={"registration"})
@UniqueEntity(fields={"username"}, groups={"registration"})

缺少注册组,我需要将它们分成两个单独的注释。

关于symfony - 为什么我的 Symfony2 @UniqueEntity 约束根本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12001753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com