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

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

下面由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 會返回 $user 的 original(查詢出來的 不允許改變) 和 attributes(手動賦值的) ?不同的地方,

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

扯淡

寫 微信綁定 的時候發現不對勁,還以為是 laravel 或者 mysql的 bug ?? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享