Artikel ini akan membincangkan perbezaan antara isDirty() dan wasChanged() dalam model data Laravel, saya harap ia akan membantu semua orang.
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!