Manipular datos Eloquent ORM en Laravel Hugo

Manipular datos Eloquent ORM en Laravel Hugo

En esta clase, entraremos de lleno a manipular los datos con Eloquent ORM utilizando la herramienta de Laravel Hugo. Con Laravel Hugo, veremos cómo crear, actualizar y eliminar registros utilizando Eloquent, y cómo aprovechar las relaciones definidas entre los modelos para gestionar las relación entre cada tabla.

¡Hola! ¡Bienvenidos al curso de Laravel Hugo!

¡Empecemos!

Iniciar Laravel Hugo

Iniciamos el programa de Laravel Hugo. Aquí es importante familiarizarse con el programa y sus tres áreas más importantes:

El menú vertical está ubicado en el lado izquierdo de la interfaz. Aquí seleccionamos la carpeta de la aplicación en la que realizaremos las pruebas. Esta sección es esencial para navegar entre los diferentes proyectos, asegurando que estamos trabajando en la aplicación correcta.

En el área del código (Color negro), introducimos el código que deseamos probar, ya sea utilizando Eloquent ORM o el Constructor de consultas SQL de Laravel (DB Query). Esta área está diseñada para facilitar la escritura y edición de código, proporcionando un entorno amigable para desarrollar y ajustar nuestras consultas. El botón que se encuentra en la parte superior permite enviar el código escrito y ejecutar las consultas.

En el área de los resultados (Color blanco) es donde se muestran los resultados obtenidos de la consulta en formato JSON. Esta visualización clara y estructurada facilita la evaluación de los datos obtenidos. Además, si se producen errores en las consultas, esta sección proporciona información detallada sobre los mismos, ayudando a identificar y corregir problemas.

Seleccionar el proyecto a realizar las pruebas

Antes de empezar a realizar las pruebas de la aplicación, lo primero es seleccionar el proyecto Mascotas en Laravel Hugo. Para ello, en el menú principal, hacemos clic en el ícono de Casa y seleccionamos la carpeta donde se encuentra nuestro proyecto. Esto nos asegura que todas las pruebas y consultas se realicen en el entorno correcto.

Seleccionar proyecto Laravel Hugo

Utilizar Eloquent ORM, Primera forma

Empezaremos a realizar las pruebas de nuestra aplicación con Laravel Hugo. Iniciaremos por la creación, actualización  y eliminación  de registros en nuestra base de datos utilizando Eloquent ORM, lo cual nos permitirá verificar la correcta  manipulación de datos en el sistema.

Crear registros

Comenzaremos insertando datos en la tabla refugios utilizando Laravel Hugo. Para ello, escribimos el siguiente código en Eloquent.

use App\models\Refugio;
$refugio = new Refugio();
$refugio->nombre = "Refugio Patitas negras";
$refugio->ciudad = "Lima - Peru";
$refugio->encargado = "Daniel Gonzales";
$refugio->save();

Ejecutamos el código Eloquent y obtendremos una respuesta igual a “1”, lo cual indica que el código se ejecutó correctamente.

Eloquent ORM Laravel Hugo

Como podemos observar, los campos de dirección y teléfono no fueron llenados en este caso, ya que son datos opcionales. Por lo tanto, no es necesario incluirlos al crear un registro en la tabla “refugios”.

SQLite Base de datos

Insertamos un nuevo registro en la tabla “refugios”. Para esto no es necesario borrar el código anterior; simplemente modificamos los valores y añadimos los campos faltantes si el caso es necesario. Por ejemplo, para este nuevo registro, incluiremos los campos de dirección y teléfono.

use App\models\Refugio;
$refugio = new Refugio();
$refugio->nombre = "Refugio Segunda oportunidad";
$refugio->ciudad = "Santa Cruz - Bolivia";
$refugio->direccion = "Av. Los lirios #3333";
$refugio->telefono = "73882333432";
$refugio->encargado = "Martha Diaz";
$refugio->save();

Ejecutamos nuevamente el código para insertar el nuevo registro en la tabla “refugios”.

Insertar Eloquent Laravel Hugo

Errores en la ejecución

Cuando existen errores de sintaxis al ejecutar consultas Eloquent, Laravel Hugo muestra mensajes detallados en el área de resultados, indicando el tipo de error y su ubicación en el código. Estos mensajes de error proporcionan información precisa sobre qué parte de la consulta causó el problema, facilitando la identificación y corrección del error.

error sintaxis Eloquent Laravel Hugo

De forma similar muestra los errores en el caso de que falten campos requeridos al ejecutar la consulta. Esto facilita la identificación y corrección del problema, asegurando que todos los campos necesarios se proporcionen antes de volver a ejecutar la consulta.

Error eloquent Laravel Hugo

Una vez corregidos todos los errores generados, procedemos a insertar un nuevo registro en la tabla “mascotas”.

use App\models\Mascota;
$mascota= new  Mascota();
$mascota->nombre = "Nupi";
$mascota->codigo = "12323223";
$mascota->tipo = "Perro";
$mascota->raza = "Golden";
$mascota->edad = 5;
$mascota->color = "Cafe Claro";
$mascota->refugio_id = 1;
$mascota->save();

Ejecutamos nuevamente el código Eloquent.

Insertar Eloquent ORM Laravel Hugo

Registramos una nueva mascota más, modificando los datos y ejecutando el código correspondiente. Por ejemplo, para el perro “Rambo”.

use App\models\Mascota;
$mascota= new  Mascota();
$mascota->nombre = "Rambo";
$mascota->codigo = "344444";
$mascota->tipo = "Perro";
$mascota->raza = "Normal";
$mascota->edad = 2;
$mascota->color = "Cafe";
$mascota->refugio_id = 1;
$mascota->save();

Insertar datos en la tabla pivote

Cuando se trabaja con una relación muchos a muchos, se utiliza una tabla pivote para gestionar la relación entre las dos tablas principales, en nuestro caso la tabla “mascotas” con la tabla “vacunas”. Para este propósito utilizaremos el método “attach” al insertar datos. 

Cuando necesitamos añadir datos adicionales a la tabla pivote, podemos pasar un array con los valores adicionales, en nuestro ejemplo el campo “fecha”.

use App\models\Vacuna;
use App\models\Mascota;
$mascota= Mascota::find(1);
$vacuna = new Vacuna();
$vacuna->tipo = "Rabia canina";
$vacuna->precio = 10;
$vacuna->save();

$vacuna->mascotas()->attach($mascota->id, ['fecha' => '2024-07-30']);

Ejecutamos el código Eloquent.

Insertar tabla pivot Eloquent Laravel Hugo

Verificamos los registros en la tabla pivote para asegurarnos de que la asociación se realizó correctamente.

SQLite table pivot Laravel Hugo

Actualizar registros

Ahora veremos la funcionalidad de actualizar registros, que nos permitirá actualizar los datos en la base de datos con los nuevos valores proporcionados.

Actualizaremos la información de la mascota “Nupi” utilizando el método “find” para localizar el registro específico que deseamos modificar. Luego, aplicamos los cambios necesarios a los atributos de la mascota.

Actualizar Eloquent Laravel Hugo

Ejecutamos el código Eloquent para guardar los cambios realizados. Esta operación actualizará el registro en la base de datos con los nuevos valores proporcionados.

SQLite db Laravel Hugo

Eliminar registros

Ahora exploraremos la funcionalidad para eliminar registros, que nos permitirá eliminar datos específicos de la base de datos. Esta operación asegura que los registros obsoletos o no deseados se eliminen permanentemente, manteniendo así la integridad y relevancia de la información almacenada.

Eliminemos a la mascota “Rambo” utilizando el método “delete”.

Eliminar Eloquent Laravel Hugo

Utilizar Eloquent ORM, Segunda forma

Con Eloquent ORM, podemos utilizar otra sintaxis intuitiva para realizar operaciones CRUD (crear, leer, actualizar y eliminar). 

Crear registros

Comenzaremos con la creación de registros en la tabla “mascotas” de la base de datos.

En el caso que existan errores al ejecutar consultas Eloquent de igual forma Laravel Hugo muestra mensajes de error específicos en el área de resultados.

Error crear Eloquent Laravel Hugo

Una vez corregidos todos los errores generados, procedemos a ejecutar la consulta Eloquent  para registrar un nuevo registro en la tabla “mascotas”.

use App\models\Mascota;
Mascota::create(['nombre' => 'Dalton', 'codigo' => '333444555', 'tipo' => 'Perro', 'raza' => 'Bulldog', 'color' => 'Blanco con negro', 'refugio_id' => 2]);

Ejecutamos el código Eloquent.

Crear Eloquent Laravel Hugo

De manera similar, crearemos nuevos registros en la tabla personas. En Laravel Hugo, escribimos la siguiente consulta para llevar a cabo esta operación.

use App\models\Persona;
Persona::create(['nombre' => 'Milton Carranza', 'dni' => '111223322', 'telefono' => '787677766']);

Ejecutamos el código Eloquent. para crear un nuevo registro en la tabla “Personas”.

Crear DB Eloquent Laravel Hugo

Crearemos un registro más en la tabla “personas”, modificaremos los datos y ejecutaremos nuevamente el código correspondiente.

use App\models\Persona;
Persona::create(['nombre' => 'Daniela Martinez', 'dni' => '11000322', 'telefono' => '78700001']);

Actualizar registros

De la misma forma, actualizaremos registros en la tabla «personas». Utilizamos el siguiente código de Eloquent en Laravel Hugo para modificar los datos existentes y reflejar los nuevos valores en la base de datos.

use App\models\Persona;
Persona::where('id', 1)->update(['nombre' => 'Milton Carranza Ortega', 'telefono' => '777778888', 'direccion' => 'Av. America']);

Ejecutamos el código Eloquent. para actualizar el registro correspondiente en la tabla “Personas”.

Update Eloquent Laravel Hugo

Eliminar registros

Por último, desarrollaremos el código Eloquent para eliminar registros, lo cual nos permitirá remover datos específicos de la base de datos. En nuestro ejemplo, eliminaremos el registro de la tabla “personas” con el Id igual a 2.

use App\models\Persona; 
Persona::where('id', 2)->delete();

Ejecutamos el código Eloquent. para eliminar el registro correspondiente en la tabla “Personas”.

Delete Eloquent Laravel Hugo

Manipular datos con Eloquent ORM en Laravel Hugo nos permite profundizar en las operaciones CRUD, abarcando desde la creación y actualización de registros hasta la eliminación de datos. Con Laravel Hugo, podemos visualizar y probar las consultas de Eloquent ORM de una manera más sencilla e intuitiva. Recuerda que estas consultas se utilizarán en todas las partes de tu aplicación para enviar y recibir información desde una interfaz de usuario. 

¡Te espero en la próxima clase!

Saludos y éxitos.

Deja un comentario

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