我想使用验证规则exist
检查电子邮件是否已经向不同用户注册。我写了以下代码:
['email','exist',
'targetClass' => User::className(),
'targetAttribute' => 'email',
'message' => 'This email has already been taken. Please try another',
'filter' => ['!=', 'user_id', Yii::$app->user->identity->id]],
每次都会抛出错误,无论是否存在具有相同电子邮件地址的不同用户。我想从这段代码中进行精确的反向验证。
{
"field": "email",
"message": "This email has already been taken. Please try another"
}
答案 0 :(得分:3)
您想要使用
['email', 'unique'],
同样在您的数据库中,您可以将列标记为唯一(至少对于我正在使用的MySQL)。
它将检查指定列中的唯一记录。
答案 1 :(得分:0)
也许你应该设置唯一和目标类
['email','unique','targetClass'=> '\共同\模型\用户']