Como crear un CRUD con Laravel 5.8 y Bootstrap 4 – Parte 2

Tutoriales

En este capitulo continuaremos con la segunda parte del tutorial anterior llamado Como crear un CRUD con Laravel 5.8 y Bootstrap 4 – Parte 1, vamos a crear el modelo, los métodos y otras configuraciones necesarias para que nuestra aplicación pueda funcionar correctamente, vamos con este Post.

Vamos a empezar creando el controlador con los métodos correspondientes para cada operación.

Controlador

Como nuestro Sistema CRUD va tener cuatro operaciones que son Create, Read, Update y Delete, estas operaciones junto con sus procesos en el código debemos de crearlos en un Controlador, en mi consola de comandos voy a crear un controlador llamado JugosController ejecutando el siguiente comando

Se nos ha creado un nuevo archivo llamado JugosController.php en la ubicación app > Http > Controllers > JugosController.php

Abre el archivo JugosController.php, dentro de el empezaremos instanciando el namespace y los traits que usaremos para nuestrs métodos dentro del controlador que son Session, Redirect, Requests, Controller, Validator, DB, Input y Storage, asimismo estoy llamando a mi modelo Jugos.

Por último el método ItemCreateRequest e ItemUpdateRequest que son 2 archivos que vamos a crearlos más adelante y nos servirán para validar los datos que enviamos en los formularios de Crear y Editar registros a la Base de Datos

El primer método que definiré en mi controlador lo llamaré crear() que servira para Crear los jugos o registros en mi tabla jugos este método procesará los datos que envie mediante un formulario HTML de Bootstrap 4 más adelante

Crear (Create)

Dentro de mi método crear() instancio la vista HTML crear.blade.php que se encuentra en resourcesview > admin > jugos > crear.blade.php al modelo Jugos que hace llamado a la tabla jugos de la Base de Datos

Después del método crear() voy a definir otro método llamado store() en donde se va a procesar los datos que recibo desde la vista HTML crear.blade.php que cuenta con un formulario para Crear un nuevo registro o jugo, este método store() recibe los datos que son enviados desde este formulario y los inserta en la tabla jugos de mi Base de Datos.

En el código he colocado comentarios para explicar que tarea realiza dicha parte del código

Puedes ver que le estoy pasando el request ItemCreateRequest que validará los datos antes de ser enviados al servidor, este request lo veremos más adelante

Leer (Read)

Ahora voy a crear el método index() el cual lo usaré para leer todos los registros de mi tabla jugos de mi Base de Datos, estos registros los colocaré en una tabla HTML de Bootstrap 4 más adelante

En la variable $jugos realizo un llamado a todos los registros o jugos de mi tabla jugos, luego los envío a la vista index.blade.php que se encuentra en resourcesview > admin > jugos > index.blade.php

Actualizar (Update)

Acá crearé el método actualizar($id) que llamará a la vista actualizar.blade.php que se encuentra en resourcesview > admin > jugos > actualizar.blade.php

Puedes ver que dentro del método actualizar($id) le estoy pasando el valor $id, este valor será el id del registro asignado en la tabla jugos, cada registro cuenta con un id único y nuestro método actualizar debe saber que registro se va actualizar.

Ahora crearé el método update() que procesará los datos que son enviados desde un formulario HTML que se encontrará en la vista actualizar.blade.php este formulario HTML lo crearé con Bootstrap 4 más adelante.

En el código he colocado comentarios para explicar que tarea realiza dicha parte del código

Dentro del método update() he colocado el request ItemUpdateRequest el cual veremos más adelante, también la variable $id, este es el id del registro de la tabla jugos de la Base de Datos que Laravel debe de actualizar

Eliminar (Delete)

Para eliminar un registro de la Base de Datos voy a crear el método eliminar() 

Con esto ya tenemos los métodos necesarios para que funcione nuestro CRUD sin problemas, estos son para el lado del servidor (Back-end)

Tanto en el método para Actualizar como en el método para Eliminar pasamos la variable o dato $id, para que tengas una idea de este dato la siguiente imagen de la tabla jugos de la Base de Datos en donde cada registro tiene un id único

Laravel necesita saber cual es el id del registro de la tabla jugos que debe gestionar.

Entorno para la Imagen

Voy a crear una carpeta con el nombre uploads en donde Laravel gestionará las imágenes para cada registro o jugo, esta carpeta es necesaria para los métodos Crear, Actualizar y Eliminar de mi sistema CRUD.

Esta carpeta la voy a crear en la carpeta public ya que debe ser pública para poder usarla en mi sistema CRUD, la ubicación exacta en donde debo crear la carpeta uploads es en public > uploads

Para que Laravel tenga conocimiento que usaré la carpeta uploads para gestionar los archivos de mi CRUD, lo debo de configurar en el archivo de configuración para los archivos llamado filesystems.php que se encuentra en config > filesystems.php 

Abre el archivo filesystems.php y ve a la línea para configurar el disco local en disks -> local -> root

Por último si crees que tiene problemas con la carpeta uploads, puede que tengas que darle permisos para poder Leer y Escribir archivos en ella.

Si estas en un servidor de Pago, ve al gestor de archivos y directorios de tu servidor, ubica la carpeta uploads y dale el permiso necesario sin arriesgar la seguridad de tu servidor, le puedes dar el permiso 755

Notas

  • Hasta aquí hemos creado nuestro Controlador JugosController.php con los métodos necesarios para realizar las operaciones de nuestro CRUD.
  • Los Pasos y opciones mencionadas en este capitulo del tutorial pueden cambiar, esto no depende de nosotros, si no de las empresas que dan soporte a estas herramientas como Laravel y Bootstrap, que suelen cambiar sus opciones de despliegue y configuración en futuras versiones.

 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.

Newsletter

Suscríbete a Nuestro Boletín de Novedades:

(Luego de la suscripción no te va salir ningun mensaje. Solo revisa tu bandeja de Correo para confirmar tu suscripción)
* indicates required