Laravel의 수정된 데이터가 원본 데이터와 동일하여 SQL이 실행되지 않는 문제를 해결하는 방법

藏色散人
풀어 주다: 2020-11-17 15:01:42
앞으로
2014명이 탐색했습니다.

데이터를 원본 데이터로 수정하여 데이터를 실행하지 않고 SQL에 대한 솔루션을 소개합니다. 필요한 친구들에게 도움이 되길 바랍니다!

Code

$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();
로그인 후 복사
Laravel의 수정된 데이터가 원본 데이터와 동일하여 SQL이 실행되지 않는 문제를 해결하는 방법질문: openid = 123이 몇 개인가요?
답변: 없음.

Reason

코드가 매우 간단합니다openid = 123 有几个?
答案: 一个都没有。

原因

Laravel의 수정된 데이터가 원본 데이터와 동일하여 SQL이 실행되지 않는 문제를 해결하는 방법

getDirty 会返回 $useroriginal(查询出来的 不允许改变) 和 attributes(手动赋值的)  不同的地方,

最后发现属性都一样,所以 $user->save() 不会执行修改。

扯淡

微信绑定 的时候发现不对劲,还以为是 laravel 或者 mysqlbug getDirty는 $user(쿼리된 사용자는 변경이 허용되지 않음)의 원본속성을 반환합니다. (수동으로 할당한 값)이 다릅니다. 여기서

마침내 속성이 동일하다는 것을 확인했기 때문에 $user->save()는 수정을 수행하지 않습니다. 🎜🎜🎜🎜헛소리🎜🎜 WeChat 바인딩을 작성했을 때 뭔가 잘못된 것을 발견했습니다. laravel 또는 의 <code>버그인 줄 알았어요. mysql 코드> 🎜                                                                             

위 내용은 Laravel의 수정된 데이터가 원본 데이터와 동일하여 SQL이 실행되지 않는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿