Contenido del curso

Manos a la obra con nuestro proyecto

Rutas y vistas con Route::resource en Laravel

Resumen

Configurar el panel administrativo en Laravel empieza por definir bien las rutas y el controlador que gestionará tu tabla de publicaciones. Aquí aprenderás a usar Route::resource, excluir rutas innecesarias y conectar tu primera vista Blade dentro del dashboard.

Cómo defino las rutas de un recurso en Laravel

La base de un CRUD limpio en Laravel es el método Route::resource, porque genera de forma automática todas las rutas que necesita una tabla administrable.

En el archivo de rutas importas el controlador que vas a usar y declaras el recurso con la palabra en plural que representa tu módulo. Para el caso de publicaciones, queda así:

php use App\Http\Controllers\PostController;

Route::resource('post', PostController::class);

Cuando ejecutas en la terminal el comando php artisan route:list, verás que Laravel genera siete rutas asociadas al recurso post. Cada una cumple una función específica dentro del ciclo administrativo de la tabla [01:08].

¿Qué hace Route::resource en Laravel? Crea de forma automática las siete rutas estándar de un CRUD: listar, crear, guardar, mostrar, editar, actualizar y eliminar, todas ligadas al controlador que le pases.

Qué rutas genera Route::resource y cuáles métodos HTTP usa

No todas las rutas usan el mismo verbo HTTP, y entender esa diferencia es clave para conectar bien el frontend con el backend.

  • GET para listar publicaciones, mostrar el formulario de creación, mostrar una publicación o mostrar el formulario de edición.
  • POST para guardar una nueva publicación en la base de datos.
  • PUT o PATCH para actualizar una publicación existente.
  • DELETE para eliminar un registro.

Cada verbo tiene un propósito: consultar, alterar o destruir información. Esa convención es la que mantiene tu API y tu panel administrativo predecibles.

Cómo excluyo rutas que no necesito en un recurso

No siempre vas a usar las siete rutas. En este caso, la ruta show no aporta valor porque la administración no requiere una vista pública individual de cada publicación.

Para excluirla, encadenas el método except al recurso:

php Route::resource('post', PostController::class)->except('show');

Al ejecutar de nuevo php artisan route:list, ahora verás seis rutas en lugar de siete. Esto mantiene tu listado limpio y evita exponer endpoints que no vas a implementar [02:15].

¿Cómo elimino una ruta específica de Route::resource? Usa el método except(['show']) para excluir rutas concretas, o only(['index', 'store']) si solo quieres conservar algunas.

Cómo conecto el controlador con una vista Blade

Con las rutas listas, el siguiente paso es definir los métodos del controlador. El primero que necesitas es index, encargado de retornar la vista con el listado de publicaciones.

Dentro de PostController agregas:

php public function index() { return view('post.index'); }

Si entras al navegador y accedes a la ruta /post, Laravel te dirá que la vista no existe. Y aquí viene el siguiente paso: crearla.

Cómo creo la vista index.blade.php dentro del módulo

Dentro de la carpeta resources/views, creas una nueva carpeta llamada post y dentro de ella un archivo index.blade.php.

Para mantener la consistencia visual del panel, reutilizas la plantilla del dashboard. Copias su contenido al nuevo archivo y ajustas dos cosas:

  1. Cambia la referencia de dashboard por post en el layout o en la sección correspondiente.
  2. Reemplaza el título por algo descriptivo, como Listado de publicaciones.

Al actualizar el navegador, la vista carga aprovechando toda la plantilla del panel administrativo, lista para que sigas construyendo encima [03:42].

¿Por qué reutilizar la plantilla del dashboard? Porque te ahorra trabajo, mantiene una identidad visual coherente y te permite enfocarte en la lógica de cada módulo sin reescribir el layout.

Con esta base ya tienes rutas, controlador y vista conectados. Desde aquí puedes implementar cada método restante (create, store, edit, update, destroy) para completar las funciones administrativas de la tabla de publicaciones. ¿Qué módulo vas a configurar tú primero? Cuéntalo en los comentarios.