2016-12-27 73 views
0

我想通過使用驗證規則exist來檢查電子郵件是否已經通過不同的用戶註冊過。我寫了下面的代碼:過濾器在yii2中不工作

['email','exist', 
'targetClass' => User::className(), 
'targetAttribute' => 'email', 
'message' => 'This email has already been taken. Please try another', 
'filter' => ['!=', 'user_id', Yii::$app->user->identity->id]], 

它每一次拋出錯誤,不論是否使用相同的電子郵件地址不同的用戶存在與否。我想從這段代碼中得到確切的反向驗證。

{ 
    "field": "email", 
    "message": "This email has already been taken. Please try another" 
} 

回答

0

可能是你還應該設置獨特的目標類

[ '郵件', '唯一', 'targetClass'=> '\ COMMON \型號\' 用戶現在

+0

感謝我得到的解決方案 – bhavika

+0

好吧,沒問題,如果你有任何其他查詢,直接問我! –

3

你想用

['email', 'unique'], 

另外在你的數據庫,你可以標記爲唯一的(至少對MySQL我使用)列。

它將檢查指定列中的唯一記錄。