23. Cómo crear rutas con route resource

En Laravel, puedes crear rutas para un recurso (como un modelo) de manera eficiente utilizando el método route::resource(). Este método crea automáticamente varias rutas para las operaciones CRUD (Create, Read, Update, Delete) de tu recurso, como index, create, store, show, edit, update y destroy. Estas rutas te permiten manejar fácilmente las solicitudes HTTP de tu aplicación y realizar las operaciones CRUD en tu modelo. Para utilizar route::resource(), simplemente debes definir una ruta que apunte a tu controlador y llamar al método route::resource() en esa ruta.


6 comentarios

Inicia sesión para comentar

Comentarios:

  • Juan Carlos Lopez

    Juan Carlos Lopez hace 5 meses

    Si añadimos un nuevo recurso al controlador. Se puede añadir al route::resource() ? he creado una nuavo y no logro que se muestre el enlace.

    • Victor Arana Flores hace 5 meses

      Hola Juan. Route Resource crea las 7 rutas de un crud. Si aparte de eso quieres crear mas rutas usando el mismo controlador, tienes que crearlo manualmanete, Route Resource no crea las rutas automaticamente, porque no sabe como has llamado a tus metodos

    • Juan Carlos Lopez hace 5 meses

      Muchas gracias, lo hare como dices.

  • Hector Bances

    Hector Bances hace 6 meses

    se agradece

  • Jesus Parra

    Jesus Parra hace 1 año

    excelente

  • Sergio ┏(-_-)┛┗(-_- )┓┗(-_-)┛

    Sergio ┏(-_-)┛┗(-_- )┓┗(-_-)┛ hace 1 año

     Para la version 10 de Laravel, si queremos "traducir" las rutas generadas con resource, vamos al archivo app/Providers/RouteServiceProvider.php y agregamos:

    Route::resourceVerbs([
    	'create' => 'crear',
         'edit' => 'editar',
    ]);

    Dentro del método boot()

    Y no hay necesidad ya de agregar:

    use Illuminate\Support\Facades\Route;

    Nota: Ya no es el archivo app\Providers\AppServiceProvider.php sino más bien el archivo app/Providers/RouteServiceProvider.php es el que hay que modificar.

     

    • Carlos Romero hace 1 año

      Desconozco en que versión sucede lo que comentas pero yo uso Laravel 10 y si es el archivo “app\Providers\AppServiceProvider.php

  • Martzdev

    Martzdev hace 1 año

    Brutal

  • Walter

    Walter hace 2 años

    ? Hasta el momento hemos generado siete rutas para nuestro CRUD de cursos. Laravel nos brinda una forma de sustituir esas líneas por una sola:

    Route::resource('cursos', CursoController::class);

          Vemos las rutas generadas ejecutando:

    php artisan r:l 

          que es equivalente a:

    php artisan route:list

     

          Si queremos "traducir" las rutas generadas con resource, vamos a app\Providers\AppServiceProvider.php y agregamos:

    use Illuminate\Support\Facades\Route;

          Y dentro del método boot():

    Route::resourceVerbs([
    	'create' => 'crear',
    	'edit' => 'editar'
    ]);

     

          Si queremos cambiar la URL pero manteniendo el nombre de las rutas:

    Route::resource('asignaturas', CursoController::class)->name('cursos');

          Ahora el nombre de las variables usarán 'asignatura' y para cambiar esto:

    Route::resource('asignaturas', CursoController::class)
    	->parameters('asignaturas' => 'curso')
    	->name('cursos');

     

    • Adrian Linares hace 3 semanas

      Route::resource('asignaturas', CursoController::class)

          ->parameters(['asignaturas' => 'curso'])

          ->names('cursos');