1. 程式人生 > >關於ThinkPHP5驗證器中唯一性驗證unique的問題

關於ThinkPHP5驗證器中唯一性驗證unique的問題

thinkphp 圖片 沒有 think clas 變化 定義 正常 同名

如果是在添加界面,驗證規則一般這樣
技術分享圖片

查詢sql是這樣的
技術分享圖片

因為定義了獨立的驗證類,所以按照手冊上的,如果想添加一些變量,得怎麽做???(見識不足,沒有看到其他在獨立類中驗證引入外部其他變量的用法)

技術分享圖片

像這樣的規則,正常在編輯界面驗證的時候,提交自身的數據常常會提示重復,

之前一直沒有找到解決方案,網絡上也沒有找到合適的解決方案

今天發現,如果表單中把主鍵id也作為數據傳入到驗證器中(name要和主鍵同名)
加了這句 技術分享圖片

驗證規則沒有改動,在驗證的時候,驗證用的sql語句自動變化了
技術分享圖片

也就說明如果在驗證數據中傳入主鍵值,那麽在驗證唯一性的時候,會排除傳入主鍵的id的數據。


手冊裏裏面倒沒說這種方式可以排除某主鍵。(不知道是不是手冊又更新了)試了幾個頁面的驗證都可以。
具體原因,以後有空得去看源碼了,暫時不深入研究。

如果有哪位高人願意點撥一下,願聞其詳哈哈

關於ThinkPHP5驗證器中唯一性驗證unique的問題