Crear CRUD en Laravel con generador de CRUD's
Image by Anastasia Gepp from Pixabay

En este tutorial te mostraré cómo crear un CRUD en Laravel con un generador de CRUD’s de manera muy rápida con lo que ahorrarás tiempo en el desarrollo de tus proyectos en Laravel. Al final del tutorial encontrarás la dirección del repositorio de este proyecto. Sin más manos a la obra.

Requisitos previos

  1.  Contar con un entorno de desarrollo como Laragon o Xamp
  2.  Tener instalado Composer de manera global

1. Crear proyecto nuevo en Laravel

Ve a la raíz en la carpeta en donde guardas tus proyectos como htdocs o www y abre la carpeta en la terminal de comandos, escribe la siguiente instrucción:

composer create-project laravel/laravel crud-with-generator

También vas a instalar Laravel/ui para la autenticación, para este proyecto usaré Bootstrap como framework CSS, en la terminal escribe y ejecuta la siguiente secuencia de comandos:

composer require laravel/ui
php artisan ui bootstrap --auth
npm install
npm run dev

En ocasiones el comando ‘npm run dev‘ se debe de correr dos veces. NOTA: en versiones de Laravel superiores a la 10 en vez de correr ‘npm run dev‘ corre:

npm run build

2. Crear base de datos y tabla clientes

Para crear una nueva base de datos escribe desde la terminal las siguientes instrucciones, recuerda acceder con tus debidas credenciales:

mysql -u root -p
CREATE DATABASE crud_generator CHARACTER SET utf8 COLLATE utf8_spanish_ci;

Para crear la tabla clientes escribe en la terminal:

php artisan make:migration create_costumers_table

Abre el proyecto con tu editor de código favorito, en mi caso usaré VS Code, abre el archivo database/migrations/2022_xx_xx_create_costumers_tabla.php y agrega lo siguiente:

Schema::create('costumers', function (Blueprint $table) { 
   $table->id(); 
   $table->string('name'); 
   $table->string('email'); 
   $table->string('phone'); 
   $table->string('address')->nullable(); 
   $table->timestamps();  
});

Crear CRUD en Laravel con generador de CRUD's
Con tu editor de textos abre el archivo .env y agrega los datos de la base de datos que creaste anteriormente:
Crear CRUD en Laravel con generador de CRUD's
Desde la terminal de comandos corre las migraciones con el siguiente comando:

php artisan migrate

3. Instalar paquete Laravel CRUD generator

Para crear un CRUD en Laravel con un generador de CRUD’s desde la terminal de comandos es necesario instalar el paquete ‘crud-generator’, escribe:

composer require ibex/crud-generator --dev

Para acceder a la configuración de la librería o paquete escribe:

php artisan vendor:publish --tag=crud

4. Usar Laravel CRUD generator

Para crear tu primer CRUD con Laravel CRUD generator escriben en la terminal de comandos:

php artisan make:crud costumers

Podrás ver que se crean el controlador, el modelo y las vistas del CRUD tomando de referencia para generarlas el nombre de la tabla customers:

5. Agregar las rutas al archivo web.php

Ahora tienes que agregar las rutas de cada una de las vistas de tu CRUD, abre el archivo route/web.php y agrega el siguiente renglón de código:

Route::resource('costumers', [CostumerController::class]);

No olvides agregar la clase ‘CostumerController’ al inicio del arhivo:
Crear CRUD en Laravel con generador de CRUD's
Si quieres proteger la ruta para que solamente usuarios autenticados accedan puedes agregar el middleware ‘auth’ a la ruta y cambia la vista en la ruta ‘/’ por ‘auth.login’ como se muestra en la imagen anterior.

6. Agregar elemento al menú

Desde el editor de textos abre el archivo resources/views/layouts/app.blade.php y en la clase ‘navbar-nav me-auto’ agrega la siguiente línea de código:

@auth 

   <a class="nav-link" href="{{ URL::to('costumers') }}">{{ __('Costumers') }}</a> 

@endauth

Agreagar al menu un elemento

7. Probar en el navegador

Para probar tu CRUD en el navegador, en la terminal de comandos escribe:

php artisan serve

Ahora abre tu navegador y escribe la dirección que se te mostró en la terminal de comandos al activar el servidor, verás la vista para loguearse al sistema:

Crear CRUD en Laravel con generador de CRUD's

Regístrate en el sistema:

Crear CRUD en Laravel con generador de CRUD's

Ve a la pestaña Costumers y crea el primer cliente:

De aquí en adelante ya puedes crear nuevos clientes, editar, mostrar y borrar.

Conclusión

En este tutorial te mostré cómo crear un CRUD en Laravel con un generador de CRUD’s llamado crud-generator, el cual te permite crear CRUD’s en muy pocos pasos. Sí este tutorial te ha servido te invito a compartirlo en tus redes sociales para llegar a más personas y si tienes dudas o comentarios déjalos en la caja de comentarios, estaré al pendiente de ellos. Te envío un saludo.
Referencias:
Repositorio del tutorial
Laravel CRUD generator

17 COMENTARIOS

  1. tengo este problema, me pueden ayudar, estoy generando el crud con postgres. solo me genera el controller, el modelo y las view me genera este error.

    SQLSTATE[42601]: Syntax error: 7 ERROR: error de sintaxis en o cerca de «FROM»
    LINE 1: SHOW COLUMNS FROM Empleados
    ^ (SQL: SHOW COLUMNS FROM Empleados)

  2. Muy buen tutorial !!!
    Excelente !!!
    Me ayudo un monton a poder entender un poco CRUD con laravel 9 .
    Gracias

    Cualquier otro tuto de laravel se agradece, estoy estudiando los otros que subiste .
    Gracias .

    • Segui los pasos al pie de la letra, mientras estudiaba lo que hacia….
      Y despues de varios intentos, funciono correctamente.
      Ojo, siguiendo todos y cada uno de los pasos.
      Nota, para los muy nuevos:
      en entornos GNU/Linux:
      ejecutar:
      npm run dev & php artisan serve
      o cada comando en una terminal, en la ruta del proyecto.
      Tienen que estar ejecutandose ambos al mismo tiempo para que se ejecutre el programa correctamente.
      Lo aclaro por el tema de los estilos …

      Pd. gran trabajo el de este blog, genial !!!!! GRACIAS !!!!!!!!!!!!!!!!!!1

  3. Hola muy buen articulo, solo que al ejecutar el comando php artisan make:crud table-name me salta un error:

    Call to undefined method Illuminate\Database\Schema\MySqlBuilder::getColumns()

    at C:\Users\Admin\topdestadmin\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:338
    334▕ if (! $instance) {
    335▕ throw new RuntimeException(‘A facade root has not been set.’);
    336▕ }
    337▕
    ➜ 338▕ return $instance->$method(…$args);
    339▕ }
    340▕ }
    341▕

    1 C:\Users\Admin\topdestadmin\vendor\ibex\crud-generator\src\Commands\GeneratorCommand.php:391
    Illuminate\Support\Facades\Facade::__callStatic(«getColumns»)

    2 C:\Users\Admin\topdestadmin\vendor\ibex\crud-generator\src\Commands\GeneratorCommand.php:425

    Estuve googleando y no encontre mucho al respecto, probe laravel 8 y 9 gracias

  4. Hola que tal buenas, he probado pero tengo tema a la hora de querer implementar mas cosas como campos para adjuntar archivos, validaciones me da error y a veces guarda registros pero no se ven, supongo que por ser Laravel 11 tiene otra configuracion, me podrian apoyar?

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.