? ? 今天寫項(xiàng)目的時(shí)候井濒,突然發(fā)現(xiàn)一個(gè)坑爹的問題灶似,使用saveAll新增多條數(shù)據(jù),但是一直提示缺少更新條件眼虱,然而我發(fā)現(xiàn)代碼里面并沒有更新喻奥,而且saveAll我僅僅是去新增多條數(shù)據(jù)而已
新增多條數(shù)據(jù)
我打印代碼的每一步驟,發(fā)現(xiàn)都是正確的捏悬,但是到了saveAll新增數(shù)據(jù)的時(shí)候就會提示錯(cuò)誤
報(bào)錯(cuò)提示
我也百度了一下撞蚕,發(fā)現(xiàn)網(wǎng)上沒有這種問題,最后我自己去看了tp5的源碼过牙,終于發(fā)現(xiàn)了問題
tp5源碼
原來源碼中有isUpdate這個(gè)屬性的值甥厦,
這個(gè)值默認(rèn)為false,但因?yàn)槲易约涸趕aveAll之前使用過save方法寇钉,而且是更新數(shù)據(jù)刀疙,
tp5 save方法
save方法會將isUpdate改為true,改完isUpdate的值扫倡,源碼并沒有再次改回來谦秧,這樣isUpdate的值將一直是true,以至于我再使用saveAll的時(shí)候撵溃,提示缺少更新條件疚鲤,而解決這個(gè)問題就是在saveAll前面加上isUpdate(false)
這樣,我們就能解決這個(gè)問題缘挑!
? ? 雖然這個(gè)問題困擾了我一小會集歇,但是我覺得卻讓我明白解決問題有時(shí)候需要從根本出發(fā),多看看tp5的源碼语淘,只有真正的看懂明白了源碼诲宇,才能寫出更好的代碼!