2015-06-19 60 views
0

我給予我的用戶更改他們的帳戶電子郵件的能力。爲此,當他們提交他們想要切換到的新電子郵件時,我將該電子郵件作爲臨時電子郵件存儲在我的數據庫中。一旦用戶點擊發送到新電子郵件的確認電子郵件,他們的原始電子郵件將變成他們的新電子郵件。在我的「用戶」表中,我有一列「電子郵件」,另一列是「temp_email」。當用戶向「temp_email」列提交新電子郵件時,我想驗證它不僅在「temp_email」列中是唯一的,而且在「電子郵件」列中也是唯一的。在Yii中,你如何驗證表中另一列的唯一性?

目前,我有這兩個陣列在我的規則()函數:

陣列( 'temp_email', '電子郵件'),
陣列( 'temp_email', '獨特', '消息'=> UserModule :: t(「此用戶的電子郵件地址已存在。」))

其中說臨時電子郵件必須是電子郵件格式,並且它不能與任何其他臨時電子郵件相同。我必須補充說的第三個數組是什麼,說臨時電子郵件不能與「電子郵件」列中的任何其他電子郵件相同?謝謝!

回答

0

您可以添加額外的屬性,您的規則指定唯一確切的規則檢查

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