이 글은 Laravel 데이터 모델에서 isDirty()와 wasChanged()의 차이점에 대해 설명합니다. 모든 사람에게 도움이 되기를 바랍니다.
Laravel 데이터 모델의 `isDirty()`와 `wasChanged()` 사이에 차이점이 있나요?
답변: 차이가 있습니다.
관련 코드 : github.com/laravel/framework/blob/...
isDirty 함수 코드는 다음과 같습니다.
/** * 判断模型或者任意指定模型属性是否被修改过 * * @param array|string|null $attributes * @return bool */public function isDirty($attributes = null){ return $this->hasChanges( $this->getDirty(), is_array($attributes) ? $attributes : func_get_args() );}
getChanges() 및 getDirty() 함수 코드는 다음과 같습니다
/** * 获取自从最后一次同步以来,被修改的属性值 * * @return array */public function getDirty(){ $dirty = []; foreach ($this->getAttributes() as $key => $value) { if (! $this->originalIsEquivalent($key, $value)) { $dirty[$key] = $value; } } return $dirty;}/** * 获取所有已经被修改的属性. * * @return array */public function getChanges(){ return $this->changes;}
간단히 .
답변 인용: laracasts.com/discuss/channels/elo...
isDirty(및 getDirty)는 데이터베이스에서 검색한 후 호출할 때 어떤 속성이 수정되었는지 확인하기 위해 사전 실행 저장에 사용됩니다. , wasChanged(및 getChanges)는 저장 후 실행되어 마지막 저장(코드에서 데이터베이스로)에서 속성이 수정 또는 업데이트되었는지 확인합니다.
원본 주소: https://stackoverflow.com/questions/58312036 / incoherence-between-eloquent-isdirty-and-getchanges
번역 주소: https://learnku.com/laravel/t/61576
[관련 권장 사항: laravel 비디오 튜토리얼]
위 내용은 Laravel에서 isDirty()와 wasChanged()의 차이점에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!