23. Grupo de rutas

En este capítulo, aprenderás cómo utilizar grupos de rutas en Laravel para agrupar rutas relacionadas en tu aplicación. Los grupos de rutas son una forma conveniente de definir middleware y otros parámetros de rutas comunes en una sola ubicación. Te enseñaremos cómo utilizar grupos de rutas en Laravel para mejorar la estructura y organización de tus rutas.


3 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 2 años Destacado

    Los grupos de rutas en Laravel son una herramienta poderosa para compartir atributos de ruta, como el middleware, entre un conjunto de rutas, lo que evita tener que definir estos atributos en cada ruta individual. Además, los grupos anidados pueden fusionar de forma inteligente los atributos con su grupo principal, incluyendo middleware y condiciones "where", mientras que agregan nombres y prefijos automáticamente.

    Por ejemplo, para asignar middleware a todas las rutas dentro de un grupo, simplemente usa el método middleware antes de definir el grupo. El middleware se ejecuta en el orden en que aparecen en la matriz:

    Route::middleware(['first', 'second'])->group(function () {
        Route::get('/', function () {
            // Usa los middlewares first y second...
        });
     
        Route::get('/user/profile', function () {
            // Usa los middlewares first y second...
        });
    });
    

    También puedes definir un controlador común para todas las rutas dentro de un grupo usando el método controller:

    use App\Http\Controllers\OrderController;
    
    Route::controller(OrderController::class)->group(function () {
        Route::get('/orders/{id}', 'show');
        Route::post('/orders', 'store');
    });

    Además, los grupos de rutas también se pueden usar para manejar el enrutamiento de subdominios. A los subdominios se les pueden asignar parámetros de ruta, lo que le permite capturar una parte del subdominio para usar en su ruta o controlador. Para hacer esto, llama al método domain antes de definir el grupo:

    Route::domain('{account}.example.com')->group(function () {
        Route::get('user/{id}', function (string $account, string $id) {
            // ...
        });
    });

    El método prefix se puede usar para prefijar cada ruta en el grupo con un URI determinado, por ejemplo, puedes prefijar todos los URI de ruta dentro del grupo con "admin":

    Route::prefix('admin')->group(function () {
        Route::get('/users', function () {
            // Coincide con la URL "/admin/users"
        });
    });

    Finalmente, el método name se puede usar para prefijar cada nombre de ruta en el grupo con una cadena dada. Esto es útil para, por ejemplo, anteponer los nombres de todas las rutas del grupo con "admin":

    Route::name('admin.')->group(function () {
        Route::get('/users', function () {
            // Asigna el nombre de ruta "admin.users"...
        })->name('users');
    });

    ¡Esperamos que esta información sobre grupos de rutas en Laravel te sea útil!

  • Carlos

    Carlos hace 2 semanas

    hola Víctor entiendo entonces que los Routes Resource sirven más para cuando sólo se desea seguir la convención del crud, y los Grupo de rutas para cuando se quiera hacer más que sólo un crud, ahora mi pregunta es hay alguna diferencia funcional con respecto a los Grupos de rutas y hacerlo de forma “normal” es decir así => Route::get('/', [HomeController::class, 'index']);

    • Victor Arana Flores hace 1 semana

      Hola Carlos exactamente. Route Resource es cuando quieres crear las 7 rutas para hacer crud, para otro tipo de rutas te puede servir el grupo de rutas.

      En cuando a tu segunda pregunta, el grupo de rutas no es obligatorio usarlo, se usa como su nombre lo dice cuando quieres agrupar, ya sea que las rutas, compartan controladores, middlewares, nombres, etc.

      Si vas a crear uno o dos rutas a lo mejor no quieras agruparlo, pero cuando generes 20 rutas, y ves que muchas de esas rutas comparten las mismas cosas, a lo mejor quiras agruparlas.

  • Erik Serna Vite

    Erik Serna Vite hace 2 años

    ¿Y qué recomiendan más, Grupo de rutas o Route Resource?

    • Victor Arana Flores hace 2 años

      Las dos. Debes escoger de acuerdo a tus necesidades.