Rumah  >  Artikel  >  rangka kerja php  >  Analisis ringkas tentang perbezaan antara isDirty() dan wasChanged() dalam Laravel

Analisis ringkas tentang perbezaan antara isDirty() dan wasChanged() dalam Laravel

青灯夜游
青灯夜游ke hadapan
2023-01-04 21:23:201555semak imbas

Artikel ini akan membincangkan perbezaan antara isDirty() dan wasChanged() dalam model data Laravel, saya harap ia akan membantu semua orang.

Analisis ringkas tentang perbezaan antara isDirty() dan wasChanged() dalam Laravel

Adakah terdapat sebarang perbezaan antara `isDirty()` dan `wasChanged()` dalam model data Laravel?

Jawapan: Ada perbezaan.

Kod berkaitan: github.com/laravel/framework/blob/...

Kod fungsi isDirty adalah seperti berikut:

/**
 * 判断模型或者任意指定模型属性是否被修改过
 *
 * @param  array|string|null  $attributes
 * @return bool
 */public function isDirty($attributes = null){
    return $this->hasChanges(
        $this->getDirty(), is_array($attributes) ? $attributes : func_get_args()
    );}

Kod fungsi getChanges() dan getDirty() adalah seperti berikut

/**
 * 获取自从最后一次同步以来,被修改的属性值
 *
 * @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;}

Ringkasnya.

Jawapannya dipetik daripada: laracasts.com /discuss/channels/elo ..

isDirty (dan getDirty) digunakan untuk pra-simpan pelaksanaan untuk melihat sifat mana yang telah diubah suai antara pengambilan semula daripada pangkalan data dan panggilan, semasa wasChanged. (dan getChanges) digunakan selepas menyimpan Tetapkan pelaksanaan untuk melihat sama ada sifat telah diubah suai atau dikemas kini dalam simpanan terakhir (daripada kod ke pangkalan data).

Alamat asal: https://stackoverflow .com/questions/58312036/incoherence -between-loquent-isdirty-and-getchanges

Alamat terjemahan: https://learnku.com/laravel/t/61576

[ Cadangan berkaitan: Tutorial video laravel

Atas ialah kandungan terperinci Analisis ringkas tentang perbezaan antara isDirty() dan wasChanged() dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam