CRUD en Laravel: Incluye proyecto final

arrow_back Blog

En este tutorial aprenderás a crear un CRUD en Laravel de forma completa haciendo uso de las herramientas más típicas en el desarrollo de aplicaciones web con Laravel.

CRUD es el acrónimo de Crear, Leer, Actualizar y Eliminar. Se utiliza a menudo en el contexto de bases de datos y aplicaciones web para hacer referencia a las operaciones básicas que se pueden realizar sobre los datos almacenados.

En el contexto de Laravel, CRUD se refiere a la capacidad que tiene una aplicación para crear nuevos registros en una base de datos, leer registros existentes, actualizar registros existentes y eliminar registros. Laravel proporciona varias herramientas y características que facilitan la implementación de operaciones CRUD en una aplicación web.

Algunas de las características de Laravel que pueden ser útiles para implementar CRUD incluyen:

  • El uso de controladores y vistas para separar la lógica de la interfaz de usuario.

  • El uso de modelos y consultas Eloquent para interactuar con la base de datos de manera sencilla y coherente.

  • El uso de formularios y validación de formularios para recibir y validar datos del usuario.

Proyecto final

Descarga el proyecto final desde GitHub.

Crear proyecto Laravel

Lo primero que debemos hacer para desarrollar un CRUD en Laravel es crear nuestro proyecto, en nuestro caso lo haremos con el instalador de Laravel:

Con los comandos anteriores ya tendremos nuestro proyecto creado y Laravel Breeze instalado para tener un sistema de autenticación en Laravel.

Modelo y migración

Los modelos en Laravel son clases que se utilizan para interactuar con la base de datos y representan las tablas de la base de datos. Cada modelo se asocia con una tabla de la base de datos y puede utilizar el ORM Eloquent para realizar operaciones CRUD en esa tabla.

Las migraciones en Laravel son archivos que se utilizan para definir y modificar la estructura de las tablas de la base de datos de tu aplicación. Puedes utilizar las migraciones para crear nuevas tablas, agregar o eliminar columnas de una tabla existente y realizar otras modificaciones en la estructura de la base de datos.

El comando anterior habrá creado el modelo, una migración y un controlador para gestionar los proyectos en nuestra aplicación CRUD.

Nuestra migración podrá crear o eliminar la tabla projects haciendo uso del comando migrate de Laravel.

Ahora vamos a abrir nuestro modelo Project para hacer algunos ajustes:

  • $fillable: evitamos asignación masiva.

  • método boot: mientras se esté creando un nuevo proyecto, guardamos el usuario identificado en ese momento.

  • método user: establecemos la relación de un proyecto con un usuario.

Con todo lo anterior, vamos a generar nuestra base de datos con la tabla de proyectos, pero recuerda primero actualizar las credenciales de tu base de datos en el archivo .env:

Rutas CRUD en Laravel

En Laravel tenemos un sistema de rutas muy potente que nos permite hacer cosas increíbles. Una de ellas es definir todas las rutas de una aplicación CRUD con una sola línea.

El método resource generará los siguientes endpoints en nuestra aplicación:

Actualizar la navegación de Laravel

Antes de seguir, y para tenerlo todo en orden, vamos a añadir la navegación al listado de proyectos en el archivo resources/views/layouts/navigation.blade.php:

CRUD Laravel: Navegación proyectos

CRUD Laravel: Listar proyectos con paginación

Vamos a añadir el método index a nuestro controlador ProjectController para obtener los proyectos paginados y así poder mostrarlos en el listado de proyectos:

Nuestro método index simplemente obtiene los proyectos paginados utilizando Eloquent y retorna una vista que contendrá esa información para poder mostrarla, creemos esa vista:

CRUD Laravel: Listado proyectos paginados
  • @forelse: si existen proyectos, los recorremos, en otro caso mostramos un mensaje conforme no hay datos.

  • formulario para eliminar: esta es la mejor forma de llevar a cabo un borrado a través de una interfaz en Laravel, formulario con @csrf y @method DELETE.

  • $projects->hasPages(): comprueba si existen páginas en la paginación para mostrar los enlaces.

  • $projects->links(): pinta los enlaces de la paginación, por defecto con Tailwind CSS.

CRUD Laravel: Proyectos paginados con datos

CRUD Laravel: Crear proyectos

Vamos a añadir el método create a nuestro controlador ProjectController para mostrar un formulario que nos permita crear nuevos proyectos:

  • Utilizamos el sistema de traducciones de Laravel.

  • Generamos los datos necesarios para la vista.

  • No creamos diferentes archivos para crear o editar, creamos un form.

Ahora vamos a crear nuevo archivo form.blade.php el cual representará un formulario de alta y edición en Laravel para gestionar nuestros proyectos:

  • action: definimos la acción que debe ejecutar el formulario, en este caso lanzará el formulario contra el endpoint store de nuestro controlador.

  • @isset: lo mismo que la función isset de PHP.

  • @method: Un hack de Laravel para poder procesar formularios utilizando método PUT o DELETE, útil para la actualización.

  • @error: Si existe algún error con el campo dado, se mostrará en pantalla.

CRUD Laravel: Formulario alta

Sin duda alguna lo mejor de nuestro formulario es que servirá tanto para crear como para editar.

CRUD Laravel: Validar y guardar proyectos en base de datos

Ahora añadamos el método store a nuestro ProjectController para validar y dar de alta los proyectos en base de datos:

  • $request->validate: Con este método podemos llevar a cabo la validación de los datos desde los controladores.

  • Project::create: El método create de los modelos de Eloquent nos permite crear nuevos registros en nuestra base de datos.

Con lo anterior podrás dar de alta nuevos proyectos validando los datos para evitar errores en tus proyectos.

CRUD Laravel: Detalle de un proyecto

Ahora vamos a añadir el método show a nuestro controlador para poder mostrar el detalle de un proyecto en una nueva página:

  • show(Project $project): Route Model Binding, de esta forma Laravel a través de Eloquent nos ofrece los datos automáticamente, ahí está el proyecto que deseamos mostrar.

  • load('user:id,name'): Es una forma de especificar la cláusula select en la relación user a nuestro modelo Project, así evitamos traer más información de la necesaria.

Crea un archivo show.blade.php y vamos a mostrar el detalle de un proyecto:

CRUD Laravel: Detalle proyecto

CRUD Laravel: Editar proyectos

Vamos a añadir el método edit a nuestro controlador ProjectController para mostrar un formulario que nos permita editar proyectos existentes:

Como puedes ver, la única diferencia con el método create de nuestro controlador es que ahora estamos definiendo la variable $method, la cual hará saber a nuestro formulario que estamos editando un proyecto.

CRUD Laravel: Validar y actualizar proyectos

Ahora añadamos el método update a nuestro ProjectController para validar y actualizar los proyectos en base de datos:

Muy parecido a nuestro método store anterior, la única diferencia es que ajustamos la validación para evitar que sean únicos los proyectos excluyendo el que estamos editando y en lugar de llamar al método create, llamamos al método update.

CRUD Laravel: Eliminar proyectos

Para finalizar nuestra aplicación vamos a añadir el método destroy a nuestro ProjectController, con esto podremos eliminar proyectos y habremos finalizado este tutorial:

Llamando al método delete de nuestro modelo, Eloquent borrará este registro de nuestra base de datos y nuestro trabajo habrá finalizado.


Hasta aquí hemos cubierto cómo crear un CRUD en Laravel, ahora te invito a que mejores este CRUD aplicando el patrón repositorio con este curso.

Cursosdesarrolloweb Cursosdesarrolloweb

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Formulario de contacto

Copyright 2024 © Todos los derechos reservados.

Contacto