我在用户的注册表单中使用了用户名的唯一约束。
用户实体具有以下代码
/*
* @UniqueEntity(fields="username",message="Username is already in use")
*/
class users
{
/**
* @var string
* @Assert\NotBlank(message="username should not be blank")
* @ORM\Column(name="username", type="string", length=40)
*
*/
private $username;
/**
* @var string
* @Assert\NotBlank(message="password should not be blank")
* @ORM\Column(name="password", type="string", length=40)
*/
private $password;
}
对于注册,当登录时,这个实体的每个东西都运行正常,它显示已经在使用的错误用户名。我们是否可以在控制器内保持唯一约束,即在形式内。因此,仅适用于注册表单唯一性。
答案 0 :(得分:0)
使用验证组:
http://symfony.com/doc/2.1/book/validation.html#validation-groups
(当你点击链接时 - 你会看到非常类似的情况:用户和注册)
修改强>:
我假设您的用户实体中有一个“user_type”字段(例如,可能的值可能是:“normal_user”和“affiliate”)。如果是这样,那么您只需将这两个字段组合指定为唯一。像这样:
@UniqueEntity(fields={"username", "user_type"},message="Username is already in use") */