thinkphp5.1驗證器場景驗證中傳參的方法。


一個場景:用戶保存自己的昵稱,如果已經有其他用戶用了這個昵稱則不允許保存,但是要排除當前用戶自己,因為如果用戶未作修改,新昵稱和老昵稱一樣,是可以保存的。

 因為昵稱定義了唯一規則:

'name'   => 'unique:user',

所以即便是當前用戶也不能保存未經修改一樣的昵稱。

 

解決方法:在控制器中,就把uid(主鍵)通過驗證器唯一通道 $data參數傳遞給驗證器

//控制器代碼
$data['uid'] = 10;
$validate = $this->validate($data, 'app\common\validate\User.info');

 

 這樣,驗證器就會自動排除當前主鍵,當前主鍵可以順利保存。不會被唯一性束縛。

 

有遇到同樣問題的小伙伴,可以參考。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM