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

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

青灯夜游
青灯夜游앞으로
2023-01-04 21:23:201636검색

이 글은 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으로 문의하시기 바랍니다. 삭제