Laravel Dropzone completo: Alta, edici贸n, procesado al ejecutar formulario

arrow_back Blog

Dropzone es el plugin jQuery por excelencia para subir m煤ltiples archivos al servidor utilizando Ajax. Lo que vamos a ver aqu铆 es un proceso completo que te permitir谩 hacer la integraci贸n de forma sencilla en tus proyectos. Para ello, la l贸gica de nuestro Dropzone la vamos a dejar en un componente aislado. Preparar la base de datos Lo primero de todo es crear los modelos y migraciones necesarios, en este caso Attachment y Product.

Ahora vamos a actualizar las migraciones.

La tabla de Attachments la vamos a gestionar con relaciones polim贸rficas igual que hicimos en este curso. El resto es algo que hemos tratado demasiadas veces como para explicarlo.

Finalmente actualiza los modelos involucrados con el siguiente c贸digo.

Componente Dropzone Ahora vamos a crear el componente Dropzone, el cual nos permitir谩 pintar en pantalla un Dropzone que podremos utilizar en nuestro proyecto.

Ahora vamos a abrir el archivo .php.

Inicializamos una serie de datos necesarios, la clase del contenedor HTML, ruta de procesamiento, ruta de validaci贸n, ruta para redirigir al finalizar la subida y finalmente archivos para el modo edici贸n, f铆jate que es opcional (?Collection).

Ahora abrimos el archivo .blade.php y actualizamos por lo siguiente.

Algo importante es fijarse que nuestro Dropzone siempre estar谩 dentro de un formulario, en este caso con ID #my-form. Nuestra idea es primero hacer una petici贸n Ajax para validar nuestro formulario, y, en caso de que la validaci贸n sea satisfactoria, procesar los archivos en cola de Dropzone, pero no antes. Servicio para procesar archivos Ahora que ya tenemos nuestro componente Dropzone listo, necesitamos cierta l贸gica para procesar los archivos que estaremos subiendo. Estos archivos pueden subirse a nuestro sistema local de storage o a S3, lo que m谩s nos convenga, el c贸digo ser谩 exactamente el mismo.

Crea un archivo app/Services/DropzoneService.php y actualiza su c贸digo con el siguiente.

Algo interesante que podr铆as hacer en nuestro servicio ser铆a hacer que el disco pueda ser din谩mico, ya que nuestra clase no es concreta para S3, ser铆a un buen cambio.

Rutas Ahora vamos a crear las rutas necesarias para que nuestro sistema pueda mostrar y procesar informaci贸n utilizando Dropzone.

Validaci贸n con FormRequest Una vez hecho, vamos a crear un FormRequest para validar nuestro formulario.

Controlador Ahora abre el controlador ProductController y actualiza el c贸digo por el siguiente.

  • En nuestro controlador hacemos varias cosas. Inyectamos nuestro servicio para gestionar archivos y un repositorio para gestionar la l贸gica de Eloquent a trav茅s de la interfaz ProductRepositoryInterface.
  • Definimos m茅todos para crear y actualizar datos.
  • Validamos nuestro formulario utilizando nuestro ProductRequest.
Si tienes dudas acerca del patr贸n repositorio no te pierdas este curso.

Repositorio para Products Ahora crea el repositorio EloquentProductRepository y actualiza su c贸digo por el siguiente.

Formulario final Para finalizar nuestro ejemplo, simplemente debemos crear nuestro formulario, en este caso el archivo lo hemos llamado form.blade.php, as铆 que cr茅alo y modifica su c贸digo por el siguiente.

El formulario utiliza Laravel Collective, en caso de dudas revisa su documentaci贸n o los cursos de la plataforma, lo utilizamos de forma intensiva.

A partir de aqu铆 simplemente debes ajustar toda la l贸gica a tus necesidades, el ejemplo es extenso pero 100% funcional para llevar a cabo complejos desarrollos con Dropzone.

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