>  기사  >  PHP 프레임워크  >  Laravel의 수정된 데이터가 원본 데이터와 동일하여 SQL이 실행되지 않는 문제를 해결하는 방법

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

藏色散人
藏色散人앞으로
2020-11-17 15:01:422011검색

데이터를 원본 데이터로 수정하여 데이터를 실행하지 않고 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으로 문의하시기 바랍니다. 삭제