🗃️ Modelos Eloquent y ORM en Laravel

🗃️ Modelos Eloquent y ORM en Laravel

El ORM Eloquent es el sistema que usa Laravel para interactuar con la base de datos de forma orientada a objetos. En lugar de escribir consultas SQL manualmente, trabajamos con Modelos que representan las tablas de la base de datos.

📘 1️⃣ ¿Qué es un modelo en Laravel?

Un modelo es una clase de PHP que representa una tabla en la base de datos. Por convención:

  • El nombre del modelo está en singular (por ejemplo: Producto).
  • El nombre de la tabla correspondiente está en plural (por ejemplo: productos).

Laravel maneja automáticamente esta relación entre modelo y tabla, aunque también se puede personalizar.

⚙️ 2️⃣ Crear un modelo con Artisan

Podemos generar un modelo con el comando:

php artisan make:model Producto
      

Esto crea el archivo app/Models/Producto.php:


    

🧩 3️⃣ Personalizar el modelo

Podemos definir qué tabla, campos y reglas usará nuestro modelo:

class Producto extends Model
{
    protected $table = 'productos'; // Nombre de la tabla
    protected $primaryKey = 'id';   // Clave primaria
    public $timestamps = true;      // Usa created_at y updated_at

    // Campos que se pueden asignar masivamente
    protected $fillable = ['nombre', 'descripcion', 'precio', 'stock', 'categoria'];
}
      

💾 4️⃣ Operaciones básicas con Eloquent

Veamos cómo crear, leer, actualizar y eliminar registros usando el modelo Producto.

🟢 Crear un registro

$producto = new Producto();
$producto->nombre = 'Teclado mecánico';
$producto->precio = 89.99;
$producto->stock = 20;
$producto->save();
      

🔵 Leer registros

// Obtener todos los productos
$productos = Producto::all();

// Buscar por ID
$producto = Producto::find(1);

// Filtrar con condiciones
$caros = Producto::where('precio', '>', 50)->get();
      

🟠 Actualizar registros

$producto = Producto::find(1);
$producto->precio = 79.99;
$producto->save();
      

🔴 Eliminar registros

$producto = Producto::find(1);
$producto->delete();
      

🔗 5️⃣ Relaciones entre modelos

Eloquent facilita definir relaciones entre tablas:

🧍 Uno a muchos (One to Many)

Un Usuario puede tener muchos Productos:

class Usuario extends Model {
    public function productos() {
        return $this->hasMany(Producto::class);
    }
}
      

🏷️ Muchos a uno (Many to One)

Un Producto pertenece a un Usuario:

class Producto extends Model {
    public function usuario() {
        return $this->belongsTo(Usuario::class);
    }
}
      

🔁 Muchos a muchos (Many to Many)

Por ejemplo, Productos y Categorías pueden tener relación múltiple:

class Producto extends Model {
    public function categorias() {
        return $this->belongsToMany(Categoria::class);
    }
}
      

✅ Conclusión

  • 🗃️ Eloquent permite trabajar con bases de datos usando modelos PHP.
  • 📁 Cada modelo representa una tabla.
  • 💬 Permite crear, leer, actualizar y eliminar datos fácilmente.
  • 🔗 Soporta relaciones entre tablas (uno a muchos, muchos a muchos, etc.).

En la próxima lección veremos cómo establecer la conexión a la base de datos y gestionar las configuraciones necesarias para que Eloquent funcione correctamente.



Publicar un comentario

0 Comentarios