模型比较(比较模型)是 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中文网其他相关文章!