首頁 >php框架 >Laravel >如何解決Laravel修改資料與原始資料一樣,導致沒有執行sql的問題

如何解決Laravel修改資料與原始資料一樣,導致沒有執行sql的問題

藏色散人
藏色散人轉載
2020-11-17 15:01:422041瀏覽

下面由Laravel教學欄位介紹給大家#Laravel修改資料與原始資料一樣,導致沒有執行sql的解決辦法,希望對需要的朋友有幫助!

如何解決Laravel修改資料與原始資料一樣,導致沒有執行sql的問題

代碼

$openid = "123"; // 微信openid
User::WhereIn("id",['1','2','3'])->update([
  'openid' => $openid
]);

$user = User::find(1);

// 取消所有这个openid的绑定者
User::Where(['openid' => $openid])->update([
  'openid' => null
]);

// 给1号用户绑定openid
$user->openid = $openid;
$user->save();

#問題:  openid = 123 有幾個?
答案: 一個都沒有。

原因

如何解決Laravel修改資料與原始資料一樣,導致沒有執行sql的問題

getDirty 會回傳$useroriginal (查詢出來的不允許改變) 和attributes(手動賦值的)  不同的地方,

最後發現屬性都一樣,所以$user->save () 不會執行修改。

扯淡

寫入微信綁定 的時候發現不對勁,還以為是laravelmysqlbug                                       之後  

以上是如何解決Laravel修改資料與原始資料一樣,導致沒有執行sql的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除