Nombre de Rutas en Laravel 5.5

Nombrar las rutas nos ayuda a la hora de generar una URL o redirigir sin mayor problema.

Lo logramos con un método de encadenamiento llamado name.

    Route::get('user/account', function () {
       //
    })->name('account');

Recuerda que todo esto lo logramos desde el archivo routes/web.php. También podemos colocar nombres de rutas para acciones específicas de algún controlador.

Route::get('user/account', 'UserController@account')->name('account');

Veamos cómo podríamos generar una URL

Luego de haber asignado el nombre a una ruta determinada, podemos entonces generar una URL o redireccionar desde un controlador con una función global llamada route, veamos:

    // Generando rutas
    // Esto puede hacerse en una vista o controlador
    $url = route('account');

    // Generando redirecciones
    // Por lo general usamos esta manera para redirigir desde un controlador
    return redirect()->route('account');

Nombre de rutas y parámetros

Probablemente tu ruta define uno o varios parámetros, los parámetros se insertarán automáticamente según el orden específico.

    Route::get('user/{id}/account', function ($id) {
        //
    })->name('account');

Y lo generamos de la siguiente manera $url = route('account', ['id' => 1]);

Inspección de la ruta actual

Algo nuevo es poder acceder a la ruta actual sin mayor problema, es decir, si deseamos que a partir de una ruta con nombre determinado hacer algo especifico, podemos hacerlo de la siguiente manera:

Usemos de ejemplo un Middleware

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if ($request->route()->named('account')) {
           // qué hacer?
        }

        return $next($request);
    }

Saber en detalle que hay detrás es la clave para aportar grandes soluciones, ya no es un simple "funciona".


Toma notas: Un breve registro escrito, código o notas de algo para ayudarte a recordar en el futuro. escribe pensando en eso, toma notas y aporta código a otros.

Etiquetas:

route laravel