🔍 Introducción a Eloquent ORM

🔍 Introducción a Eloquent ORM

Eloquent ORM (Object Relational Mapper) es el sistema de Laravel que nos permite interactuar con la base de datos utilizando clases y objetos en lugar de sentencias SQL manuales. Cada tabla de la base de datos se representa como un modelo, y cada registro como una instancia de ese modelo.

🧠 1️⃣ ¿Qué es un modelo en Eloquent?

Un modelo en Laravel representa una tabla de la base de datos. Por ejemplo, si tienes una tabla llamada productos, el modelo correspondiente será Producto (en singular y con la primera letra en mayúscula).

php artisan make:model Producto
        

Esto creará un archivo en la carpeta app/Models/Producto.php con el siguiente contenido básico:

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Producto extends Model
{
    use HasFactory;
}
        

📘 Laravel asume automáticamente que este modelo está vinculado con una tabla llamada productos (plural del nombre del modelo).

⚙️ 2️⃣ Convenciones de Eloquent

  • 📁 El modelo Producto se asocia automáticamente con la tabla productos.
  • 🔑 La clave primaria predeterminada es id.
  • 🕒 Laravel espera que las columnas created_at y updated_at existan para registrar fechas.

Si deseas cambiar el nombre de la tabla o desactivar las marcas de tiempo, puedes hacerlo dentro del modelo:

class Producto extends Model
{
    protected $table = 'mis_productos';
    public $timestamps = false;
}
        

🧩 3️⃣ Interactuando con la base de datos

Una vez creado el modelo, puedes usarlo directamente para realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sin escribir SQL.

use App\Models\Producto;

// Crear un nuevo registro
$producto = new Producto();
$producto->nombre = 'Teclado inalámbrico';
$producto->precio = 25.99;
$producto->save();

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

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

// Actualizar un registro
$producto->precio = 29.99;
$producto->save();

// Eliminar un registro
$producto->delete();
        

💡 Gracias a Eloquent, todas estas operaciones se traducen automáticamente en consultas SQL seguras y eficientes.

🧰 4️⃣ Comandos útiles relacionados con modelos

  • php artisan make:model Nombre → Crea un modelo simple.
  • php artisan make:model Nombre -m → Crea el modelo junto con una migración.
  • php artisan make:model Nombre -a → Crea modelo, migración, controlador, fábrica y seeder.
  • php artisan tinker → Abre una consola interactiva para probar comandos Eloquent.

📦 5️⃣ Ejemplo práctico

Supongamos que tenemos una tabla productos con los campos id, nombre y precio. Podemos listar todos los productos en una vista de esta manera:

// En el controlador
use App\Models\Producto;

public function index() {
    $productos = Producto::all();
    return view('productos.index', compact('productos'));
}
        

Y en la vista resources/views/productos/index.blade.php:

@foreach($productos as $producto)
  

{{ $producto->nombre }} - ${{ $producto->precio }}

@endforeach

✅ Conclusión

  • 🔍 Eloquent ORM facilita el trabajo con bases de datos mediante modelos orientados a objetos.
  • 📦 Cada modelo representa una tabla y permite realizar operaciones CRUD de forma sencilla.
  • ⚙️ Usa convenciones por defecto, pero puedes personalizarlas según tus necesidades.
  • 💡 Es una de las herramientas más potentes y elegantes de Laravel.

En la próxima lección aprenderemos a insertar registros con Eloquent de forma práctica y eficiente.



Publicar un comentario

0 Comentarios