-1

我在用户的注册表单中对用户名使用了唯一约束。

用户实体具有以下代码

/*

* @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;
}

对于注册,该实体在登录时一切正常,它显示错误用户名已在使用中。我们能否将唯一约束保留在控制器中,即在 form.so 中,以便仅应用注册表单唯一性。

4

1 回答 1

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") */
于 2013-05-31T08:36:23.697 回答