La comparaison de modèles (Comparaison de modèles) est un aspect important de Laravel Eloquent, qui est utile dans divers contextes. Par exemple, trouver des différences entre deux instances de modèle ou vérifier si un modèle a changé.
Laravel propose plusieurs méthodes de comparaison de modèles. Vous trouverez ci-dessous quelques méthodes et exemples :
1. Comparaison de modèles selon la méthode is()
:
is()
compare deux instances de modèle. Cela vérifie si les deux modèles pointent vers le même enregistrement.
<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()
compare l'ID et la référence de deux modèles. S'il existe une instance du même enregistrement, renvoie true
, sinon false
.
2. Comparaison de modèles selon la méthode isNot()
:
isNot()
est à l'opposé de la méthode is()
. Il compare deux modèles et renvoie true
s'ils diffèrent.
<code class="language-php">use App\Models\Post; $post1 = Post::find(1); $post2 = Post::find(2); if ($post1->isNot($post2)) { echo "পোস্ট ১ এবং পোস্ট ২ ভিন্ন।"; } else { echo "পোস্ট ১ এবং পোস্ট ২ একই।"; }</code>
Cela fait le contraire de is()
, vérifier la variance des modèles.
3. Comparaison de modèles à l'aide des méthodes isDirty()
et isClean()
:
isDirty()
et isClean()
déterminent l'état des modifications des données du modèle.
isDirty()
: true
renvoie si un champ du modèle a changé.isClean()
: Renvoie true
si le modèle n'a pas changé.<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()
et isClean()
sont utilisés pour suivre les modifications du modèle.
Les méthodes 4, 5 et 6 (Custom isEqual(), diff(), compare()) sont faciles à comprendre en conjonction avec les exemples ci-dessus et peuvent être personnalisées selon les besoins.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!