程式碼
$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
有幾個?
答案: 一個都沒有。
原因
getDirty
會返回 $user
的 original
(查詢出來的 不允許改變) 和 attributes
(手動賦值的) 不同的地方,
最後發現屬性都一樣,所以 $user->save()
不會執行修改。
扯淡
寫 微信繫結
的時候發現不對勁,還以為是 laravel
或者 mysql
的 bug
當然
本作品採用《CC 協議》,轉載必須註明作者和本文連結