Introducción
Laravel proporciona varios helpers para generar URLs de tu aplicación. Son especialmente útiles al construir enlaces en plantillas o respuestas de API, o al generar respuestas de redirección a otra parte de la aplicación.Uso básico
Generar URLs
Con el helperurl puedes generar cualquier URL.
La URL generada utiliza automáticamente el esquema (HTTP o HTTPS) y el host de la solicitud actual.
query.
Obtener la URL actual
Si no pasas una ruta al helperurl, se devuelve una instancia de Illuminate\Routing\UrlGenerator que da acceso a información sobre la URL actual.
URL.
Obtener la URL anterior
A veces querrás saber la URL que visitaba el usuario justo antes. Puedes obtenerla conprevious o previousPath del helper url.
URLs de rutas con nombre
El helperroute sirve para generar URLs de rutas con nombre.
Con rutas con nombre puedes generar URLs sin depender de la URL real definida en la ruta.
Así, aunque la URL cambie, no necesitas modificar las llamadas a route.
Modelos Eloquent
Es habitual generar URLs con la clave de ruta (normalmente la clave primaria) de un modelo Eloquent. Puedes pasar el modelo directamente como parámetro.route extraerá automáticamente la clave de ruta del modelo.
URLs firmadas
Laravel facilita la creación de URLs “firmadas” a rutas con nombre. A la URL se le añade un hash de “firma” en el query string, lo que permite a Laravel comprobar que la URL no ha sido manipulada tras su creación. Las URLs firmadas son muy útiles en rutas de acceso público que necesitan protección frente a manipulación. Por ejemplo, puedes usar URLs firmadas para implementar un enlace público de “cancelar suscripción” que envías por correo. Créalas consignedRoute de la fachada URL.
absolute de signedRoute puedes excluir el dominio del hash de firma.
temporarySignedRoute.
Al validar una URL firmada temporal, Laravel comprueba que el timestamp de caducidad codificado en la URL no haya pasado.
Flujo de verificación de la URL firmada
Verificar solicitudes con ruta firmada
Para comprobar que la solicitud entrante tiene una firma válida, llama ahasValidSignature sobre la instancia Illuminate\Http\Request.
hasValidSignatureWhileIgnoring.
signed (Illuminate\Routing\Middleware\ValidateSignature) a la ruta.
Si la solicitud no tiene una firma válida, el middleware responde automáticamente con 403.
relative en el middleware.
Respuesta a rutas firmadas no válidas
Cuando se accede a una URL firmada caducada, se muestra una página de error genérica con código HTTP403.
Puedes personalizar este comportamiento definiendo un closure de “render” para la excepción InvalidSignatureException en bootstrap/app.php.
URLs de acciones de controlador
La funciónaction genera la URL de una acción de controlador determinada.
Objeto URI fluido
La clase URI de Laravel proporciona una interfaz fluida para crear y manipular URIs mediante objetos.Parámetros de URL por defecto
A veces querrás fijar un valor por defecto para ciertos parámetros de URL en toda la solicitud. Por ejemplo, imagina que muchas rutas tienen un parámetro{locale}.
locale cada vez que se llama a route resulta pesado.
Con URL::defaults puedes definir un valor por defecto de este parámetro que se aplique durante toda la solicitud actual.
Llamando a este método desde un middleware de ruta puedes acceder a la solicitud actual.
locale establecido, ya no hace falta pasarlo al generar URLs con route.
Establecer valores por defecto puede interferir con el implicit model binding de Laravel.
Ordena las prioridades del middleware para que el que establece los defaults se ejecute antes que el
SubstituteBindings de Laravel.
Puedes configurar la prioridad del middleware con el método priority en bootstrap/app.php.