繁体   English   中英

过滤器在yii2中不起作用

[英]filter not working in yii2

我想检查邮件已经被不同的用户使用验证规则登记的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"
}

你想用

['email', 'unique'],

同样在数据库中,您可以将列标记为唯一(至少对于我正在使用的MySQL)。

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

也许您还应该设置唯一的目标类

['email','unique','targetClass'=>'\\ common \\ models \\ User']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM