Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Generación de URL
Introducción
Conceptos básicos
Generar URLs básicas
Acceder a la URL actual
URL de rutas con nombre
URLs a acciones de controladores
Valores por defecto
Introducción
Laravel incorpora varias funciones de asistencia en la generación de URLs. Por supuesto, son
principalmente útiles para la generación de enlaces en las vistas y respuestas API, o para generar
redirecciones a otra parte de la aplicación.
Conceptos Básicos
$post = App\Post::find(1);
echo url("/posts/{$post->id}");
// http://example.com/posts/1
echo url()->current();
https://docs.laraveles.com/docs/5.5/urls 1/4
1/11/2018 Laraveles – Documentación de Laravel en español
echo url()->full();
echo url()->previous();
Cada uno de estos métodos se puede acceder también a través de URL como facade:
use Illuminate\Support\Facades\URL;
echo URL::current();
Route::get('/post/{post}', function () {
//
})->name('post.show');
Para generar una URL a esta ruta se usaría la función route de este modo:
// http://example.com/post/1
A menudo se generarán URLs utilizando la clave primaria de un modelo Eloquent. Por esta razón, se
pueden pasar modelos Eloquent como parámetro. La función route extraerá directamente la clave
primaria del modelo:
La función action genera una dirección URL para una acción determinada de un controlador. No se
necesita pasar el namespace completo del controlador. En vez de eso, hay que pasar el nombre de la
clase controller relativo al namespace App\Http\Controllers :
$url = action('HomeController@index');
Si el método del controlador acepta parámetros de ruta, se pueden pasar como segundo argumento a
la función:
Route::get('/{locale}/posts', function () {
//
})->name('post.index');
Es tedioso ir pasando locale cada vez que se llama a la función route . Se puede utilizar el
método URL::defaults para definir un valor por defecto para este parámetro que será aplicado siempre
durante la petición actual. Se puede llamar a este método desde un route middleware (middleware de
ruta) por lo que se tendrá acceso a la petición actual:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\URL;
class SetDefaultLocaleForUrls
{
public function handle($request, Closure $next)
return $next($request);
https://docs.laraveles.com/docs/5.5/urls 3/4
1/11/2018 Laraveles – Documentación de Laravel en español
}
}
Una vez que el valor por defecto para locale se ha establecido, no será necesario pasarlo más al
generar URLs a través del helper route .
https://docs.laraveles.com/docs/5.5/urls 4/4