📖 Leer datos desde Eloquent

📖 Leer datos desde Eloquent

Una de las ventajas más poderosas de Eloquent ORM es su capacidad para leer datos de la base de datos de forma sencilla, legible y eficiente, sin escribir consultas SQL manuales.

🔍 1️⃣ Obtener todos los registros

El método all() recupera todos los registros de la tabla asociada al modelo:

use App\Models\Producto;

$productos = Producto::all();

foreach ($productos as $producto) {
    echo $producto->nombre . ' - ' . $producto->precio . '<br>';
}
        

💡 Retorna una colección de modelos, lo que permite iterar fácilmente sobre los resultados.

🔢 2️⃣ Obtener un registro por su ID

Para obtener un solo registro por su ID, se usa el método find() o findOrFail():

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

// Si no existe, lanza un error automáticamente
$producto = Producto::findOrFail(99);
        

📘 findOrFail() lanza una excepción si el registro no existe, útil para manejar errores 404 automáticamente.

🎯 3️⃣ Filtrar resultados con condiciones

Usa los métodos where() y first() para aplicar filtros personalizados:

$producto = Producto::where('precio', '>', 50)->first();

$productos = Producto::where('stock', '<', 20)
                     ->orderBy('precio', 'desc')
                     ->get();
        

💡 Puedes encadenar métodos como orderBy(), limit() o get() para construir consultas más complejas.

📦 4️⃣ Seleccionar columnas específicas

Si no necesitas todos los campos, puedes seleccionar columnas concretas con select():

$productos = Producto::select('nombre', 'precio')
                     ->where('stock', '>', 0)
                     ->get();

foreach ($productos as $item) {
    echo $item->nombre . ' cuesta ' . $item->precio . '€<br>';
}
        

💡 Esto mejora el rendimiento, ya que Laravel solo recupera los campos necesarios desde la base de datos.

⚙️ 5️⃣ Consultas avanzadas

Puedes realizar consultas más elaboradas combinando métodos de Eloquent:

$productos = Producto::whereBetween('precio', [20, 100])
                     ->whereNotNull('stock')
                     ->orderBy('nombre')
                     ->take(5)
                     ->get();

$total = Producto::where('stock', '>', 0)->count();
        

📊 Estas consultas se traducen automáticamente a SQL optimizado por Laravel.

✅ Conclusión

  • 📖 Eloquent simplifica la lectura de datos mediante métodos claros y expresivos.
  • 🔍 Usa all() para obtener todos los registros o find() para buscar por ID.
  • 🎯 Aplica condiciones con where() y ordena con orderBy().
  • ⚙️ Combina múltiples métodos para construir consultas complejas de manera sencilla.

En la próxima lección aprenderemos cómo actualizar registros con Eloquent de forma rápida y segura.



Publicar un comentario

0 Comentarios