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

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

青灯夜游
Lepaskan: 2023-01-04 21:23:20
ke hadapan
1581 orang telah melayarinya

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()
    );}
Salin selepas log masuk

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;}
Salin selepas log masuk

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!

Label berkaitan:
sumber:learnku.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan