2016-12-27 74 views
0

我想通过使用验证规则exist来检查电子邮件是否已经通过不同的用户注册过。我写了下面的代码:过滤器在yii2中不工作

['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

可能是你还应该设置独特的目标类

[ '邮件', '唯一', 'targetClass'=> '\ COMMON \型号\' 用户现在

+0

感谢我得到的解决方案 – bhavika

+0

好吧,没问题,如果你有任何其他查询,直接问我! –

3

你想用

['email', 'unique'], 

另外在你的数据库,你可以标记为唯一的(至少对MySQL我使用)列。

它将检查指定列中的唯一记录。