Obtener información Eloquent ORM en Laravel Hugo

Consultas de selección Eloquent en Laravel Hugo

En esta clase, veremos cómo realizar consultas de selección utilizando Eloquent ORM dentro de Laravel Hugo. Aprenderemos a recuperar datos de la base de datos de manera eficiente para poder visualizar esta información de forma clara. Utilizando la interfaz intuitiva de Laravel Hugo, podemos realizar y probar consultas Eloquent de una manera visual, lo cual nos facilitará enormemente el desarrollo de  nuestra aplicación.

¡Empecemos!

Generar consultas con Eloquent ORM

Para poder visualizar eficientemente los datos de nuestra base de datos, emplearemos las instrucciones proporcionadas por Eloquent ORM a través de la herramienta de Laravel Hugo.

A continuación, exploraremos algunos de los métodos más importantes que Eloquent ORM nos ofrece para realizar consultas y obtener información de la base de datos. Para realizar estas pruebas, registraremos más información en nuestra base de datos, lo que nos permitirá observar cómo funcionan estas consultas en un entorno más realista.

Base de datos Mascotas Laravel Hugo

Referenciar al Modelo de Eloquent

Para realizar cualquier tipo de consulta a la base de datos con Eloquent, primero necesitamos referenciar al modelo correspondiente.

Para nuestro ejemplo, utilizaremos el modelo “Mascota” para realizar las primeras consultas a la base de datos.

use App\Models\Mascota;

Consultas con Eloquent de Laravel

Los métodos “all” y “get” nos permiten obtener todos los registros de la tabla “mascotas”. Desde Laravel Hugo escribimos el siguiente código de Eloquent.

Mascota::all();
Mascota::get();

Ejecutamos la consulta, y Laravel Hugo obtiene la respuesta de la consulta realizada, mostrando la información en pantalla.

Seleccionar todo all Laravel Hugo

Utilizaremos los métodos “find”, “findOrFail” y “where” para obtener un registro específico de la base de datos.

Mascota::find(1);
Mascota::findOrFail(1);
Mascota::where('id', '=', 1)->get();

Ejecutamos la consulta, Laravel Hugo obtiene la respuesta de la consulta realizada.

Seleccionar uno Find Laravel Hugo

Utilizaremos los métodos “first” y “last” para obtener el primer y el último registro de la consulta, respectivamente.

Mascota::get()->first();
Mascota::get()->last();

El método “count” para obtener la cantidad de registros.

Mascota::count();

Utilizaremos los métodos “max” y “min” para obtener la mascota con mayor y menor edad, respectivamente.

Mascota::max('edad');
Mascota::min('edad');

Relaciones entre los modelos

Gracias a las relaciones definidas en los modelos, Eloquent nos permite obtener información no solo del modelo en cuestión, sino que también información con todas las relaciones  asignadas.

Por ejemplo, podemos obtener la información del refugio en el que actualmente se encuentra la mascota.

use App\Models\Mascota;
$mascota = Mascota::find(6);
$mascota->refugio;

Ejecutamos la consulta y podemos ver toda la información de refugio.

Consulta obtener relaciones Laravel Hugo

Otro ejemplo, podemos obtener la información de todas las vacunas realizadas a una mascota.

use App\Models\Mascota; 
$mascota = Mascota::find(1); 
$mascota->vacunas;

Ejecutamos la consulta.

Consultas relacionadas Laravel Hugo

Consulta where en Eloquent

Las cláusulas condicionales “where” se utilizan para seleccionar únicamente ciertos registros de una tabla basándonos en condiciones específicas. Por ejemplo, si queremos obtener las mascotas que sean de tipo perro y gato, utilizaremos esta cláusula para filtrar esos registros.

use App\Models\Mascota; 
Mascota::whereIn('tipo', ['Perro', 'Gato'])->get();

Al ejecutar la consulta eloquent podemos verificar que obtiene únicamente información de acuerdo a los filtros detallados.

Where in Laravel Hugo

Además de utilizar la cláusula “where”, podemos añadir a la consulta otras estructuras como “orderBy” y “take”. La primera ordena los resultados obtenidos, mientras que la segunda limita la cantidad de resultados que se mostrarán en la consulta.

use App\Models\Mascota; 
Mascota::where('tipo', 'Perro')->orderBy('nombre')->take(5)->get();

En la consulta, podemos aplicar múltiples cláusulas “where” y seleccionar únicamente los campos necesarios para el resultado.

use App\Models\Mascota; 
Mascota::where('tipo', 'Perro')->where('edad', '>=', '4')->select('codigo', 'nombre', 'edad', 'raza')->get();

Sentencia With

Eloquent nos permite ejecutar consultas que unen dos o más tablas mediante el uso de la cláusula “with”, gracias a las relaciones definidas en nuestros modelos. Por ejemplo, si deseamos obtener la mascota “Nupi” en que refugio se encuentra.

use App\Models\Mascota;
Mascota::with('refugio')->where('nombre', 'Nupi')->get();
Consultas with Eloquent Laravel Hugo

Un similar ejemplo, esta vez  para obtener todas las mascotas que se encuentran en el refugio  “Refugio Patitas Negras”.

use App\Models\Refugio;
Refugio::with('mascotas')->where('nombre', 'Refugio Patitas Negras')->get();
Consultas with Mascotas Laravel Hugo

Otro ejemplo es obtener todas las vacunas aplicadas a la mascota “Nupi”, sabiendo que la relación entre vacunas y mascotas es de muchos a muchos.

use App\Models\Mascota;
Mascota::with('vacunas')->where('nombre', 'Nupi')->get();

Podemos aplicar la cláusula “with” a más de una relación. Por ejemplo, si queremos saber las vacunas que tiene la mascota “Nupi” y cuando fue adoptado.

use App\Models\Mascota;
Mascota::with(['adopcion', 'vacunas'])->where('nombre', 'Nupi')->get();

Podemos aplicar la cláusula “with” a modelos relacionados entre ellos, por ejemplo: El modelo “Mascota” tiene una relación con el modelo “Adopción” y el modelo “Adopción” tiene un relación con el modelo “Persona”, de esta forma podemos acceder a las datos tanto de mascota, adopción y persona.

use App\Models\Mascota;
Mascota::with('adopcion.persona')->get();

Con esto concluimos las consultas a la base de datos utilizando Eloquent ORM en Laravel Hugo. De esta manera, podemos manipular toda la información y verificar si hay inconsistencias en nuestra base de datos para aplicar las correcciones necesarias.

¡Te espero en la próxima clase!

Saludos y éxitos.

Victor Peña

Victor Peña

Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *