1. 程式人生 > >ThinkPHP3.2中字段unique驗證出錯的解決方法

ThinkPHP3.2中字段unique驗證出錯的解決方法

更新 model 修改 保護 賦值 id重復 就會 ror 驗證

protected $_validate=array(
        array(‘stu_id‘,‘‘,‘學號已存在‘,1,‘unique‘,1),

當一次插入多條數據時:

在進行循環

使用create驗證時,當數據中某一條數據stu_id重復時,便會觸發錯誤。

並且你會發現從這條數據起後面的數據無論是否重復字段,都會報錯,無法進行插入或更新。

是因為在錯誤驗證後,Model.class.php中 Model類$this->error 就會被賦值,並且不會被清空,然後到下一次循環時,$this->error 依然沒有被清空,導致返回驗證失敗.。

解決方法是在自己定義的XXXModel類中進行修改,因為是繼承於Model類

而且在Model類中$this->error是保護成員,可以被子類繼承,所有可以在自己的Model類中封裝函數進行修改清空,以供調用

public function setError($str=null){
        $this->error=$str;
}

  

ThinkPHP3.2中字段unique驗證出錯的解決方法