模型比較(比較模型)是 Laravel Eloquent 的一個重要方面,它在各種上下文中都很有用。 例如,尋找兩個模型實例之間的差異,或檢查模型是否已變更。
Laravel 提供了多種模型比較的方法。 以下是一些方法和範例:
1。使用is()
方法進行模型比較:
is()
方法比較兩個模型實例。這會檢查兩個模型是否指向同一筆記錄。
<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()
方法比較兩個模型的 ID 和參考。 如果存在相同記錄的實例,則傳回 true
,否則傳回 false
.
2。使用isNot()
方法進行模型比較:
isNot()
方法與 is()
方法相反。 它比較兩個模型,如果不同則回傳 true
。
<code class="language-php">use App\Models\Post; $post1 = Post::find(1); $post2 = Post::find(2); if ($post1->isNot($post2)) { echo "পোস্ট ১ এবং পোস্ট ২ ভিন্ন।"; } else { echo "পোস্ট ১ এবং পোস্ট ২ একই।"; }</code>
這與is()
相反,檢查模型的變異數。
3。使用 isDirty()
和 isClean()
方法比較模型:
isDirty()
和 isClean()
方法決定模型資料變更的狀態。
isDirty()
:如果模型中的任何欄位發生更改,則傳回 true
。 isClean()
:如果模型未更改,則回傳 true
。 <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()
和 isClean()
用於追蹤模型變更。
方法4、5、6(自訂isEqual()、diff()、compare())結合上面的範例很容易理解,可以根據需要自訂。
以上是Laravel Eloquent ORM(孟加拉語部分)-(比較模型)的詳細內容。更多資訊請關注PHP中文網其他相關文章!