使用唯一约束使用户无法登录symfony2

时间:2013-05-31 07:08:42

标签: symfony symfony-2.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;
}

对于注册,当登录时,这个实体的每个东西都运行正常,它显示已经在使用的错误用户名。我们是否可以在控制器内保持唯一约束,即在形式内。因此,仅适用于注册表单唯一性。

1 个答案:

答案 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") */