CREAR RUTAS CRUD EN LARAVEL

En el post crear rutas en Laravel se explica como crear rutas en Laravel de una en una. Pero hay una manera de crear todas las rutas CRUD con una sola línea:

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

//PostController debe tener estos métodos:
class PostController extends Controller
{
    public function index() {}
    public function create() {}
    public function store(Request $request) {}
    public function show($id) {}
    public function edit($id) {}
    public function update(Request $request, $id) {}
    public function destroy($id) {}
}

Ventajas

  • Ahorra tiempo ya que no se define cada ruta manualmente.
  • Sigue el estándar REST.
  • Código más limpio y organizado.

Personalización

  • Crear solo algunas rutas:

    Route::resource('posts', PostController::class)->only(['index', 'show']);
    
  • Excluir rutas:

    Route::resource('posts', PostController::class)->except(['create', 'edit']);
    

Tabla de rutas que crean automáticamente

Método HTTP URL Acción del controlador Nombre de la ruta Propósito común
GET /posts index() posts.index Mostrar lista de todos los posts
GET /posts/create create() posts.create Mostrar formulario de creación
POST /posts store() posts.store Guardar un nuevo post
GET /posts/{post} show() posts.show Mostrar un post específico
GET /posts/{post}/edit edit() posts.edit Mostrar formulario de edición
PUT / PATCH /posts/{post} update() posts.update Actualizar un post existente
DELETE /posts/{post} destroy() posts.destroy Eliminar un post