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