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

Php 在Yii中,如何针对表中的另一列验证唯一性?,php,yii,yii-modules,yii-validation,Php,Yii,Yii Modules,Yii Validation,我让我的用户能够更改他们的帐户电子邮件。为此,当他们提交想要切换到的新电子邮件时,我将该电子邮件作为临时电子邮件存储在我的数据库中。一旦用户单击发送到新电子邮件的确认电子邮件,其原始电子邮件将更改为新电子邮件。在我的“用户”表中,我有一列“电子邮件”,另一列是“临时电子邮件”。当用户将新电子邮件提交到“临时电子邮件”列时,我想验证它不仅在“临时电子邮件”列中是唯一的,而且在“电子邮件”列中也是唯一的 目前,我的rules()函数中有两个数组: 数组('temp_email','email'),

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

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

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


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

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

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