Laravel: comparando modelos Eloquent
March 28, 2021 Compartir
Cómo podemos comparar si dos instancias del mismo modelo son iguales.
A veces es necesario determinar si dos modelos Eloquent son “iguales” o no. En Laravel contamos con los métodos is
y isNot
. Estos métodos verifican si dos instancias del mismo modelo tienen la misma clave primaria y pertenecen a la misma tabla y conexión de base de datos.
if ($customer->is($anotherCustomer)) {
// some code here...
}
if ($customer->isNot($anotherCustomer)) {
// some code here...
}
Estos métodos también podemos usarlos en las relaciones tipo belongsTo
, hasOne
,
morphTo
y morphOne
. De esta manera podemos simplicar nuestro código cuando necesitemos comparar un modelo relacionado sin tener que lanzar la consulta a la base de datos para recuperar esa relación.
En vez de:
if ($customer->company->id == $selectedCompany->id) {
//
}
Prodemos escribirlo así
if ($customer->company()->is($selectedCompany)) {
//
}
Autor
Hola 👋, Soy Alejandro, un desarrollador de software que disfruta crear y mejorar herramientas que resuelvan problemas y hagan que la vida de las personas sea más sencilla, bella y cómoda. Algunas veces escribo sobre las cosas que he aprendido con el tiempo. Espero que el contenido te sea de ayuda.