一個場景:用戶保存自己的昵稱,如果已經有其他用戶用了這個昵稱則不允許保存,但是要排除當前用戶自己,因為如果用戶未作修改,新昵稱和老昵稱一樣,是可以保存的。
因為昵稱定義了唯一規則:
'name' => 'unique:user',
所以即便是當前用戶也不能保存未經修改一樣的昵稱。
解決方法:在控制器中,就把uid(主鍵)通過驗證器唯一通道 $data參數傳遞給驗證器
//控制器代碼 $data['uid'] = 10; $validate = $this->validate($data, 'app\common\validate\User.info');
這樣,驗證器就會自動排除當前主鍵,當前主鍵可以順利保存。不會被唯一性束縛。
有遇到同樣問題的小伙伴,可以參考。