在Yii中,如何验证表中另一列的唯一性?

时间:2015-06-19 15:46:32

标签: php yii yii-modules yii-validation

我正在让我的用户更改其帐户电子邮件。为此,当他们提交他们想要切换到的新电子邮件时,我将该电子邮件作为临时电子邮件存储在我的数据库中。用户点击发送到新电子邮件的确认电子邮件后,其原始电子邮件将更改为新电子邮件。在我的“用户”表中,我有一个列,“电子邮件”,另一个是“temp_email”。当用户将新电子邮件提交到“temp_email”列时,我想验证它不仅在“temp_email”列中,而且在“email”列中也是唯一的。

目前,我在rules()函数中有这两个数组:

array('temp_email','email'),
array('temp_email','unique','message'=> UserModule :: t(“此用户的电子邮件地址已存在。”)

表示临时电子邮件必须采用电子邮件格式,并且不能与任何其他临时电子邮件相同。我必须添加的第三个数组是什么,说临时电子邮件不能与“email”列中的任何其他电子邮件相同?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以向规则添加其他属性,以指定唯一检查的确切规则

array('temp_email', 'unique',
      'className' => 'User', 'attributeName' => 'email',
      'message'   => "This user's email address already exists."),