Tp5.0 一個form表單對兩個數表(無關聯)的內容進行更新
阿新 • • 發佈:2018-11-12
呃呃呃呃呃,這個筆記做的有點想罵人,因為本來是一個很簡單的操作,卻因為我手冊沒有讀熟,基礎不夠紮實,導致了困擾我好久。話不多說 先上圖:
一個form 表單裡面的資料是從兩個資料表裡用ajax面拿出來的(至於咋拿的,上一次筆記有寫),這時對錶單資料進行改動,然後重新存入資料庫。。。。
提交過來的資料是這樣的(很明顯在一個數組裡面),
這個時候先用Tp手冊裡的方法進行插入資料庫:
這個時候原以為就完事了,nonono,出問題了,還要一個事物處理機制,不然當改了表1,表2卻失敗就完了。
所以測試程式碼就是這個
public function edit() { $data=input('post.'); $arr=$data['ago']; $data['ago']=$arr['id']; $EntrustModel = new EntrustModel(); $StatusModel = new StatusModel(); Db::startTrans(); $res1=$EntrustModel->allowField(true)->save($data, ['E_num' => $data['E_num']]); $res2=$StatusModel->allowField(true)->save($arr, ['id' => $arr['id']]); if($res1&&$res2){ Db::commit(); } else{ Db::rollback(); } return 111; } } }
(新增事物的時候需要注意的點:1.資料庫必須是innoDB;2.只是學習筆記)