Perbandingan model (Membandingkan Model) ialah aspek penting Laravel Eloquent, yang berguna dalam pelbagai konteks. Contohnya, mencari perbezaan antara dua tika model atau menyemak sama ada model telah berubah.
Laravel menyediakan beberapa kaedah untuk perbandingan model. Di bawah adalah beberapa kaedah dan contoh:
1. Perbandingan model menggunakan kaedah is()
:
is()
membandingkan dua contoh model. Ini menyemak sama ada kedua-dua model menunjukkan rekod yang sama.
<code class="language-php">use App\Models\Post; $post1 = Post::find(1); $post2 = Post::find(1); $post3 = Post::find(2); // মডেল তুলনা if ($post1->is($post2)) { echo "পোস্ট ১ এবং পোস্ট ২ একই।"; } else { echo "পোস্ট ১ এবং পোস্ট ২ ভিন্ন।"; } // পোস্ট ১ এবং পোস্ট ৩ তুলনা if ($post1->is($post3)) { echo "পোস্ট ১ এবং পোস্ট ৩ একই।"; } else { echo "পোস্ট ১ এবং পোস্ট ৩ ভিন্ন।"; }</code>
is()
membandingkan ID dan rujukan dua model. Jika terdapat kejadian rekod yang sama, mengembalikan true
, jika tidak false
.
2. Perbandingan model menggunakan kaedah isNot()
:
isNot()
adalah bertentangan dengan kaedah is()
. Ia membandingkan dua model dan mengembalikan true
jika ia berbeza.
<code class="language-php">use App\Models\Post; $post1 = Post::find(1); $post2 = Post::find(2); if ($post1->isNot($post2)) { echo "পোস্ট ১ এবং পোস্ট ২ ভিন্ন।"; } else { echo "পোস্ট ১ এবং পোস্ট ২ একই।"; }</code>
Ini melakukan yang bertentangan dengan is()
, menyemak varians model.
3. Membandingkan model menggunakan kaedah isDirty()
dan isClean()
:
isDirty()
dan isClean()
menentukan status perubahan data model.
isDirty()
: Mengembalikan true
jika mana-mana medan dalam model telah berubah.isClean()
: Mengembalikan true
jika model tidak berubah.<code class="language-php">use App\Models\Post; $post1 = Post::find(1); $post2 = Post::find(1); $post3 = Post::find(2); // মডেল তুলনা if ($post1->is($post2)) { echo "পোস্ট ১ এবং পোস্ট ২ একই।"; } else { echo "পোস্ট ১ এবং পোস্ট ২ ভিন্ন।"; } // পোস্ট ১ এবং পোস্ট ৩ তুলনা if ($post1->is($post3)) { echo "পোস্ট ১ এবং পোস্ট ৩ একই।"; } else { echo "পোস্ট ১ এবং পোস্ট ৩ ভিন্ন।"; }</code>
isDirty()
dan isClean()
digunakan untuk menjejaki perubahan model.
Kaedah 4, 5 dan 6 (Custom isEqual(), diff(), compare()) mudah difahami bersama dengan contoh di atas dan boleh disesuaikan mengikut keperluan.
Atas ialah kandungan terperinci ORM Fasih Laravel dalam Bahagian Bangla-(Membandingkan Model). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!