Modelos en Laravel

arrow_back Blog

En Laravel, los modelos son clases que representan a las tablas en la base de datos. Se utilizan para interactuar con la base de datos y realizar operaciones como insertar, actualizar y eliminar datos. Los modelos se almacenan en la carpeta "app\Models" y se pueden crear utilizando el comando php artisan make:model <model>. También se pueden definir relaciones entre modelos, como uno a uno, uno a muchos, muchos a muchos y polimórficas.

Eloquent, el ORM para los modelos Laravel

Eloquent es el ORM (Object-Relational Mapping) incluido en Laravel. Es una forma de interactuar con la base de datos utilizando modelos en lugar de escribir consultas SQL. Cada modelo en Laravel se asocia con una tabla en la base de datos y se pueden utilizar para realizar operaciones CRUD (crear, leer, actualizar y eliminar) en esa tabla.

Curso desde 0 de Eloquent ORM

Eloquent proporciona una serie de características útiles, como el manejo automático de las claves primarias, la posibilidad de definir relaciones entre modelos, y la capacidad de crear consultas avanzadas mediante el uso de métodos de consulta.

Para utilizar Eloquent en un modelo, se debe extender la clase base Eloquent. Por ejemplo, para crear un modelo llamado "Product" que representa una tabla de productos en la base de datos, se puede crear un archivo llamado "Product.php" en la carpeta "app\Models" y escribir lo siguiente:

También se pueden especificar algunas de las características que va a utilizar este modelo, por ejemplo, si el nombre de la tabla de nuestro modelo Product es diferente a products (Eloquent busca el plural en minúsculas del model), se puede especificar utilizando la propiedad protected $table de la siguiente forma:

Atributos en los modelos Laravel

Cada modelo en Laravel, al extender de la clase base "Illuminate\Database\Eloquent\Model", tiene acceso a una serie de atributos y métodos que le permiten interactuar con la tabla correspondiente en la base de datos.

Algunos de los atributos más comunes en un modelo Eloquent incluyen:

  • $table: Especifica el nombre de la tabla en la base de datos a la que el modelo está conectado.

  • $primaryKey: Especifica el nombre de la columna que contiene la clave primaria de la tabla.

  • $fillable: Especifica qué campos del modelo se pueden rellenar mediante asignación masiva (mass assignment).

  • $hidden: Especifica qué campos del modelo deben ocultarse al mostrar el modelo como un objeto JSON o un array.

  • $connection: Especifica la conexión a la base de datos que se debe utilizar para interactuar con la tabla del modelo.

  • $timestamps: Especifica si el modelo debe tener automáticamente campos "created_at" y "updated_at" actualizados en la base de datos.

  • $guarded: Especifica qué campos del modelo no se pueden rellenar mediante asignación masiva.

  • $casts: Especifica los tipos de datos de ciertos campos del modelo. Por ejemplo, se puede especificar que un campo es un número entero o una fecha.

  • $dates: Especifica cuales campos son de tipo fecha y serán formateados automáticamente

  • $with: Especifica las relaciones que se deben cargar automáticamente cuando se recupera un modelo.

  • $appends: Especifica los campos virtuales que se deben agregar al modelo cuando se convierte en un array o se convierte en una instancia de JsonSerializable.

  • $perPage: Especifica cuantos elementos se deben mostrar en una paginación.

  • $incrementing: Especifica si la clave primaria del modelo es un valor incremental o no. Por defecto es true, pero si se usa una clave primaria que no es incremental se debe colocar en false

  • $withCount: Especifica las relaciones que se deben contar automáticamente cuando se recupera un modelo.

  • $touches: Especifica las relaciones que deben ser tocadas (touch) cuando se guarda o se actualiza un modelo.

  • $observables: Especifica los eventos que se deben disparar en el modelo.

  • $dispatchesEvents: Especifica los eventos que se deben disparar en el modelo.

Es importante tener en cuenta que estos atributos son opcionales y no es necesario definirlos para todos los modelos, dependerá del caso de uso. El uso de estos atributos puede ayudar a asegurar la integridad de los datos y mejorar la seguridad y la eficiencia de la aplicación.

Métodos en los modelos Laravel

Los modelos en Laravel también proporcionan una serie de métodos que se pueden utilizar para interactuar con la base de datos. Algunos de los métodos más utilizados de los modelos Laravel son los siguientes:

  • create(): Crea un nuevo registro en la tabla correspondiente al modelo.

  • save(): Guarda o actualiza un registro existente en la tabla correspondiente al modelo.

  • update(): Actualiza un registro existente en la tabla correspondiente al modelo.

  • delete(): Elimina un registro existente en la tabla correspondiente al modelo.

  • all(): Recupera todos los registros de la tabla correspondiente al modelo.

  • find(): Recupera un registro específico de la tabla correspondiente al modelo utilizando su clave primaria.

  • first(): Recupera el primer registro de la tabla correspondiente al modelo.

  • where(): Agrega una condición a la consulta para recuperar registros de la tabla correspondiente al modelo.

  • with(): Carga las relaciones especificadas junto con el modelo recuperado.

Estos son solo algunos ejemplos de los métodos que proporciona Eloquent, hay muchos otros métodos útiles para realizar diferentes operaciones en la base de datos, como por ejemplo:

  • firstOrCreate(), firstOrNew(), updateOrCreate()

  • findOrFail(), findMany()

  • count(), max(), min()

  • has(), doesntHave()

  • whereHas()

Es importante tener en cuenta que estos métodos son solo una parte de lo que Eloquent ofrece, y que se pueden utilizar en conjunto con otros métodos y atributos para construir consultas complejas. Es importante entender cómo funcionan estos métodos y cómo utilizarlos correctamente para asegurar la integridad de los datos y mejorar la eficiencia de la aplicación.

Trucos y recetas en Laravel Eloquent

Uso de modelos en Laravel

Aquí hay un ejemplo de cómo se podría utilizar un modelo en Laravel para interactuar con una tabla de "productos" en la base de datos:

  1. Utilizar el modelo en un controlador para crear un nuevo registro en la tabla "products".

  2. Utilizar el modelo en una vista para mostrar todos los productos.

Este es solo un ejemplo básico de cómo se pueden utilizar los modelos en Laravel para interactuar con la base de datos. Se pueden utilizar métodos y atributos de Eloquent para construir consultas más complejas y personalizadas, y se pueden utilizar en conjunto con otras funcionalidades de Laravel, como las vistas y los controladores, para construir una aplicación completa.


Hasta aquí esta entrada acerca de los modelos en Laravel, espero que te haya gustado y que ahora tengas una idea clara de para qué sirven.

En la plataforma tenemos decenas de cursos de Laravel para seguir aprendiendo todo lo que necesitas para trabajar de forma profesional con este framework PHP.

Cursosdesarrolloweb Cursosdesarrolloweb

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Formulario de contacto

Copyright 2024 © Todos los derechos reservados.

Contacto