En esta página:
Demo
En una aplicación hecha con Laravel siempre se crean módulos y procesos mediante una Paradigma estándar que va hacer que una aplicación funcione de manera correcta, dentro de estos Paradigmas se encuentra CRUD que es vital aplicarlo para la mayoría de procesos de una aplicación, en este artículo te vamos a enseñar a crear un CRUD (Create, Read, Update, Delete) estándar, en español significa Crear, Leer, Actualizar y Eliminar, y trabajaremos con Base de Datos MySQL, vamos con el artículo.
La librería “Laravel Collective” que usamos en este tutorial para crear los formularios del CRUD, ha quedado obsoleta, esto no depende de nosotros si no de los Desarrolladores que dan soporte a esta librería, ellos decidieron darle de baja.
Si crees que aún te sirve el resto del código ADELANTE, si no es así estamos trabajando en un nuevo tutorial “Como crear un CRUD con Laravel 5.8” el cual estaremos publicando en las próximas semanas, dentro de este tutorial explicaremos como crear formularios en las versiones modernas de Laravel.
El Nuevo Tutorial ya se encuentra en este enlace: Como crear un CRUD con Laravel 5.8 y Bootstrap 4 – Parte 1
Partes
Necesitaremos una Base de Datos, luego crearemos los métodos CRUD en un controlador, un modelo, las vistas entre otros detalles, este no es el orden, solo los elementos que usaremos para este tutorial.
Conexión a la Base de Datos
En este paso vamos a realizar la conexión entre Laravel Framework y la Base de Datos MySQL, si es que ya tienes hecho este paso puedes saltarlo.
Ve a la carpeta principal de Laravel y abre el archivo .env , si no tienes este archivo copia el archivo de ejemplo llamado .env.example y cámbiale el nombre déjalo como .env solamente.
1 2 3 4 5 6 |
/test /vendor ├──.env // Este archivo ├──.env.example // Archivo de ejemplo |
Ahora en el archivo .env coloca el nombre de la base de datos, el usuario y password para realizar la conexión a la Base de Datos
1 2 3 4 5 6 7 8 |
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=nombredetubasededatos DB_USERNAME=root DB_PASSWORD=tupassword |
El resto déjalo tal como esta si crees que es necesario cambiar el puerto u otro detalles adelante es tu proyecto y lo puedes manejar como desees.
Creación de la Tabla postres
Ahora vamos a crear una tabla llamada postres en nuestra base de datos MySQL, para ello ve a la carpeta principal de tu proyecto Laravel y crea una migración en la consola de comandos, ejecuta el siguiente comando
1 2 3 4 |
php artisan make:migration create_postres_table Created Migration: 2018_10_08_035218_create_postres_table |
Ahora abre el archivo de migración que se ha creado, para esto ve a database > migrations y abre el archivo que se ha creado, en este caso es 2018_10_08_035218_create_postres_table.php
1 2 3 4 5 6 7 |
/config /database ├── migrations ├── 2018_10_10_035218_create_postres_table.php // Abre esté archivo /public |
Ahora en el archivo vamos a especificar las columnas que va tener nuestra tabla postres, en la funcion up() agregamos 4 campos nombre, precio, stock e imagen, el campo id y timestamps no los muevas, estos crean valores automáticamente, por ejemplo el campo id crea un identificador único para cada registro en la tabla postres y el campo timestamps crea la fecha de creación y de actualización de un registro en la tabla postres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreatePostresTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('postres', function (Blueprint $table) { $table->increments('id'); $table->string('nombre'); // Nombre del postre $table->string('precio'); // Precio del postre $table->string('stock'); // Stock del postre $table->string('imagen'); // Imagen del postre $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('postres'); } } |
Ve a tu consola de comandos y ejecuta el siguiente comando para proceder a crear la tabla postres en la Base de Datos
1 2 3 4 5 |
$ php artisan migrate Migrating: 2018_10_08_035218_create_postres_table Migrated: 2018_10_08_035218_create_postres_table |
Ahora ve a tu phpmyadmin y revisa que se ha creado la tabla llamada postres en tu Base de Datos
Modelo Postres
Ahora vamos a crear el Modelo que gestionará los campos de la base de datos con el Controlador y las Vistas, en tu consola de comandos ejecuta el siguiente comando para crear el Modelo Postres
1 2 3 4 |
php artisan make:model Postres Model created successfully. |
Ahora ve a la carpeta app y encontrarás el archivo que se ha creado llamado Postres.php, abre este archivo
1 2 3 4 5 |
/app ├── Postres.php // Abre esté archivo /bootstrap |
En el archivo Postres.php lo primero que haremos será especificar la tabla de la Base de Datos con laque trabajaremos en este caso es la tabla postres
1 2 3 |
protected $table = 'postres'; |
Paso seguido especificaremos los campos que usaremos de la tabla postres
1 2 3 |
protected $fillable = ['nombre', 'precio', 'stock', 'imagen']; |
Ahora veamos el código completo del modelo llamado Postres.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Carbon\Carbon; class Postres extends Model { /** * The database table used by the model. * * @var string */ protected $table = 'postres'; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = ['nombre', 'precio', 'stock', 'imagen']; /** * The attributes excluded from the model's JSON form. * * @var array */ } |
Conclusión
En el siguiente Paso crearemos el Controlador y dentro de este crearemos los métodos para Crear, Leer, Editar y Eliminar postres o registros en la Base de Datos, también crearemos las vistas del usuario en donde va poder crear los registros o postres, eliminarlos, actualizarlos y leerlos.
Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.