DEV Community

Nahuel Segovia
Nahuel Segovia

Posted on • Edited on

3 3

Laravel Router

Hola, en este post les vengo a mostrar como usar las rutas con Laravel, que tiene un sistema de rutas bastante intuitivo y manejable.

Vamos a comenzar con lo básico:

Llamando a un controlador para manejar la petición:

Route::get("/home", [App\Http\Controllers\PanelController::class, 'home']);
Enter fullscreen mode Exit fullscreen mode

Parámetros requeridos:

Route::get('/blog/post/{id}', function() {
    return 'Bienvenido al post'
});
Enter fullscreen mode Exit fullscreen mode

Parámetros que pueden ser nulos:

Route::get('/blog/post/{id}', function($id = null) {
    return $id;
});
Enter fullscreen mode Exit fullscreen mode

Grupo de rutas: nos sirve para agrupar rutas y facilitar la visualización del código, como también para escribir menos código, ya que a un mismo grupo de rutas le podemos pasar por ejemplo un nombre, un prefijo o un middleware que vayan a usar todas en común:

Con Prefix:

Route::group(['prefix' => 'administrador'], function () {
    Route::get('/posteos', function ()    {
        return 'Ruta completa /administrador/posteos';
    });

    Route::get('/ver/usuarios', function () {
        return 'Ruta completa /administrador/ver/usuarios';
    });
});
Enter fullscreen mode Exit fullscreen mode

Con Middleware:

Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function ()    {
        return 'Solo logueados';
    });

    Route::get('user/profile', function () {
        return 'Solo logueados';
    });
});
Enter fullscreen mode Exit fullscreen mode

Con Namespace podemos especificar el namespace sobre donde queremos trabajar, esto es por ejemplo para no tener que especificar la ruta completa del controlador cada vez que creamos una ruta, entonces pasaríamos de esto:

Route::get("/panel", [App\Http\Controllers\PanelController::class, 'index']);
Enter fullscreen mode Exit fullscreen mode

A lo siguiente:

Route::namespace("App\Http\Controllers")->group(function () {
    Route::get("/panel2prueba", "PanelController@index");
});
Enter fullscreen mode Exit fullscreen mode

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay