
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.

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.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión