> PHP 프레임워크 > Laravel > Laravel에서 isDirty()와 wasChanged()의 차이점에 대한 간략한 분석

Laravel에서 isDirty()와 wasChanged()의 차이점에 대한 간략한 분석

青灯夜游
풀어 주다: 2023-01-04 21:23:20
앞으로
1581명이 탐색했습니다.

이 글은 Laravel 데이터 모델에서 isDirty()와 wasChanged()의 차이점에 대해 설명합니다. 모든 사람에게 도움이 되기를 바랍니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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