Gerando URLs no Laravel

Laravel
Tempo de leitura: 4 minutos

Gerando URLs no Laravel: A geração de URLs é uma função essencial no Laravel 12, servindo como base para a navegação interna, redirecionamentos e a criação de links coesos e otimizados para SEO. Em vez de codificar URLs diretamente (o que pode quebrar com mudanças), o Laravel usa Rotas Nomeadas e helpers (funções auxiliares) inteligentes para construir URLs dinamicamente.

Neste artigo, exploraremos as principais ferramentas que o Laravel oferece para gerar URLs de forma eficiente.

1. Rotas Nomeadas: O Pilar da Geração de URLs

O método mais robusto e recomendado para gerar URLs no Laravel é através das Rotas Nomeadas. Elas desacoplam a URL do seu código, garantindo que mesmo que o URI (/posts/{post}) mude, o código que usa o nome da rota (posts.show) continuará funcionando.

A. Definindo a Rota Nomeada

Você adiciona o método name() ao final da sua definição de rota:

PHP

// routes/web.php

// 1. Rota com um parâmetro dinâmico
Route::get('artigos/{post}', function ($post) {
    // ...
})->name('posts.show');

B. Gerando a URL com route()

O helper global route() é usado para construir a URL completa a partir do nome da rota, injetando automaticamente quaisquer parâmetros necessários.

PHP

// Exemplo no Blade:
<a href="{{ route('posts.show', ['post' => $post->id]) }}">
    Ver post: {{ $post->title }}
</a>

// Exemplo no Controller (para redirecionamento):
return redirect()->route('posts.show', $post->slug);
// O Laravel é inteligente: se você passar um objeto Model ($post), 
// ele tentará usar a chave primária (ID) ou o campo implícito (slug)
// para preencher o parâmetro automaticamente.

2. Helpers para Geração de URLs

O Laravel oferece vários helpers de View e de código para diferentes tipos de URLs.

A. Helper url()

O helper url() gera uma URL para um caminho específico no seu aplicativo.

UsoDescriçãoExemplo de Saída (em myapp.com)
Caminho RelativoGera uma URL absoluta baseada no caminho.url('contato') ➡️ https://myapp.com/contato
Completa (Absoluta)O padrão é gerar URL absoluta (http:// ou https://).$url = url('posts');

B. Helper asset() (Para Arquivos Estáticos)

Para referenciar arquivos estáticos no seu diretório public (CSS, JS, Imagens), use o helper asset(). Ele garante que o caminho base da sua aplicação seja corretamente prefixado.

HTML

<link rel="stylesheet" href="{{ asset('css/app.css') }}">
<img src="{{ asset('img/logo.png') }}" alt="Logo">

3. URLs Assinadas (Signed URLs)

URLs Assinadas são URLs temporárias e criptograficamente seguras que contêm uma hash (assinatura) que o Laravel verifica. Isso é perfeito para links que não devem ser manipulados (como redefinição de senha ou verificação de e-mail).

Geração de URLs Assinadas

Você usa a Facade URL (ou o helper URL::) para gerar a URL.

PHP

use Illuminate\Support\Facades\URL;

// Gera uma URL que expira em 30 minutos
$signedUrl = URL::temporarySignedRoute(
    'password.reset', 
    now()->addMinutes(30), 
    ['token' => $token, 'email' => $user->email]
);

// Exemplo de rota (deve ter o middleware 'signed'):
Route::get('/reset-password/{token}', [PasswordController::class, 'reset'])
    ->name('password.reset')
    ->middleware('signed');

O Laravel rejeitará a requisição se:

  1. A hash na URL for alterada.
  2. A URL expirar (se for um temporarySignedRoute).

4. Rotas e URLs Relativas

Em certos contextos, você pode querer gerar URLs relativas ao host atual, sem incluir o domínio.

TipoDescriçãoExemplo
Relativa ao HostURL começando com /. Útil em tags HTML como <a href="...">.url('/dashboard') ➡️ /dashboard (no mesmo domínio)
Relativa à Rota AtualGera uma URL baseada na rota atual.url()->current() (URL completa da requisição atual)
Anterior (Referer)URL da página anterior no histórico do navegador.url()->previous()

✅ Conclusão Gerando URLs no Laravel

Gerando URLs no Laravel: O sistema de roteamento do Laravel é uma das suas maiores forças. Ao utilizar as Rotas Nomeadas com o helper route(), você garante que a geração de URLs seja dinâmica, fácil de manter e resiliente a alterações de URI. Para arquivos estáticos, o asset() é obrigatório, e para links temporários e seguros, as URLs Assinadas oferecem uma solução criptograficamente robusta.

Mas antes de dominar o Laravel, se for o seu caso, toda jornada tem um início. Vamos entender quais são os conhecimentos básicos necessários para aproveitar ao máximo este poderoso framework. Para iniciar seus estudos no Laravel, você precisará dominar as seguintes tecnologias:

HTML
HTML
CSS
CSS
Javascript
JavaScript
SQL
SQL
Capa Curso PHP
PHP

E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi
Com mais de 20 anos de jornada na tecnologia, minha trajetória evoluiu do ensino técnico à arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de soluções de Inteligência Artificial nativa e análise de dados públicos, utilizando o ecossistema PHP para transformar dados brutos em transparência e eficiência. Como autor e desenvolvedor, acredito na democratização do conhecimento. Essa visão resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura até os bastidores da indústria de Jogos e IA. No universo de Game Design, sou autor do livro "GDD – O Guia Definitivo" e documento ativamente meus processos através de DevLogs, unindo rigor técnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso é conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.