跳过Yii模型的电子邮件"独特"验证

Har*_*jan 3 php email validation yii

我已经在我的Yii模型类中编写了电子邮件规则:

array('first_name, last_name, email, password, cpassword, user_type', 'required'),
array('email', 'email','message'=>"The email isn't correct"),
array('email', 'unique','message'=>"Email already exists!"),
Run Code Online (Sandbox Code Playgroud)

它适用于所有方案,如注册,登录和更新密码,但在忘记密码的功能,unique验证也有效.我想在忘记密码功能时跳过此验证规则,我只想查看电子邮件和所需功能的语法.

那么我们如何才能跳过unique针对不同(忘记密码)功能的特定验证呢?

小智 5

您可以使用"除外"选项并在操作中添加方案.

array('first_name, last_name, email, password, cpassword, user_type', 'required'),
array('email', 'email','message'=>"The email isn't correct"),
array('email', 'unique','message'=>"Email already exists!", 'except' => 'passwordRestoration'),
Run Code Online (Sandbox Code Playgroud)

然后,在行动中

...
$model = User::model()->findByPk($pk);
$model->scenario = 'passwordRestoration';
Run Code Online (Sandbox Code Playgroud)