Laravel: comparando modelos Eloquent

Foto Alejandro

March 28, 2021 Compartir

laravel eloquent

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.