Home >Database >Mysql Tutorial >Laravel Eloquent ORM in Bangla Part-(Comparing Models)
Model comparison (Comparing Models) is an important aspect of Laravel Eloquent, which is useful in various contexts. For example, finding differences between two model instances, or checking whether a model has changed.
Laravel provides several methods for model comparison. Below are some methods and examples:
1. Model comparison using the is()
method:
is()
method compares two model instances. This checks whether the two models are pointing to the same record.
<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>The
is()
method compares the ID and reference of two models. If there is an instance of the same record, returns true
, otherwise false
.
2. Model comparison using the isNot()
method:
isNot()
method is the opposite of the is()
method. It compares two models and returns true
if they differ.
<code class="language-php">use App\Models\Post; $post1 = Post::find(1); $post2 = Post::find(2); if ($post1->isNot($post2)) { echo "পোস্ট ১ এবং পোস্ট ২ ভিন্ন।"; } else { echo "পোস্ট ১ এবং পোস্ট ২ একই।"; }</code>
This does the opposite of is()
, checking the variance of the models.
3. Comparing models using isDirty()
and isClean()
methods:
isDirty()
and isClean()
methods determine the status of model data changes.
isDirty()
: Returns true
if any field in the model has changed.isClean()
: Returns true
if the model has not changed.<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()
and isClean()
are used to track model changes.
Methods 4, 5, and 6 (Custom isEqual(), diff(), compare()) are easy to understand in conjunction with the above examples and can be customized as needed.
The above is the detailed content of Laravel Eloquent ORM in Bangla Part-(Comparing Models). For more information, please follow other related articles on the PHP Chinese website!