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

时间:2015-01-16 12:54:13

标签: php validation email 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!"),

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

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

2 个答案:

答案 0 :(得分: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'),

然后,在行动中

...
$model = User::model()->findByPk($pk);
$model->scenario = 'passwordRestoration';

答案 1 :(得分:2)

array('email', 'unique','message'=>"Email already exists!", 'except' => 'your_forgot_passw_scenario'),

试试这个。