Navega por rutas URI de forma elegante con el nuevo método pathSegments() de Laravel

  • Publicado el 02 mayo, 2025
  • Palabras: 116

¿Necesitas trabajar con segmentos individuales de una ruta URI en Laravel? El nuevo método pathSegments() ofrece un enfoque más limpio y fluido para acceder a los componentes de la ruta URI.

Navega por rutas URI de forma elegante con el nuevo método pathSegments() de Laravel

Al trabajar con URL en aplicaciones web, a menudo es necesario extraer o manipular partes específicas de la ruta. Anteriormente, esto requería dividir la cadena de ruta y crear una colección manualmente. La clase Uri de Laravel ahora incluye el método pathSegments() que agiliza este proceso al devolver los componentes de la ruta como una colección lista para usar.

Veamos cómo funciona:

 

use Illuminate\Support\Facades\Uri;

$uri = Uri::of('https://laravel.com/docs/12.x/validation');

// Get all path segments as a collection
$segments = $uri->pathSegments(); // ['docs', '12.x', 'validation']

// Access specific segments using collection methods
$firstSegment = $uri->pathSegments()->first(); // 'docs'
$lastSegment = $uri->pathSegments()->last(); // 'validation'
$secondSegment = $uri->pathSegments()->get(1); // '12.x'

 

#Comparación antes y después

La mejora en legibilidad y comodidad es sustancial:

 

// Antes: división manual de cadenas y creación de colecciones
$path = Uri::of('https://laravel.com/docs/12.x/validation')->path();
$segments = collect(explode('/', ltrim($path, '/')));
$firstSegment = $segments->first();

// Después: enfoque limpio y fluido
$firstSegment = Uri::of('https://laravel.com/docs/12.x/validation')
    ->pathSegments()
    ->first();

 

#Ejemplo práctico

Este método es particularmente útil al crear lógica de enrutamiento, rutas de navegación o estructuras de navegación:

 

class DocumentationController extends Controller
{
    public function show(Request $request)
    {
        $uri = Uri::of($request->url());
        $segments = $uri->pathSegments();
        
        // Extract version and page from URL
        $section = $segments->get(0); // 'docs'
        $version = $segments->get(1); // '11.x'
        $page = $segments->get(2); // 'validation'
        
        // Build breadcrumbs based on path segments
        $breadcrumbs = $segments->map(function ($segment, $index) use ($segments) {
            $url = '/'.implode('/', $segments->take($index + 1)->all());
            return ['name' => $segment, 'url' => $url];
        });
        
        return view('documentation.show', [
            'section' => $section,
            'version' => $version,
            'page' => $page,
            'breadcrumbs' => $breadcrumbs,
        ]);
    }
}

 

Al aprovechar el nuevo método pathSegments(), puede crear un código más limpio y fácil de mantener al trabajar con rutas de URL en sus aplicaciones Laravel.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Forzar URLs HTTPS en Laravel
431

Forzar URLs HTTPS en Laravel

Transforma una URL en Laravel con la clase Uri
537

Transforma una URL en Laravel con la clase Uri

Validación de URL en Laravel con el método isUrl
524

Validación de URL en Laravel con el método isUrl

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión