ホームページ > 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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート