🗃️ 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.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias