Rotas no Laravel

Laravel
Tempo de leitura: 4 minutos

Rotas no Laravel: As rotas no Laravel são como as estradas de um site. Elas definem as URLs que os usuários podem acessar e mapeiam essas URLs para as funcionalidades específicas da aplicação.

Neste artigo, vamos explorar os diferentes tipos de rotas no Laravel, desde as mais básicas até as mais complexas, com exemplos práticos para cada caso.

Os Arquivos de Rotas Padrão

Por padrão, o Laravel fornece dois arquivos principais para definir as rotas:

  • routes/web.php: Este arquivo é usado para definir rotas que serão acessadas através de requisições HTTP padrão (GET, POST, PUT, DELETE, etc.).
  • routes/api.php: Este arquivo é usado para definir rotas que serão utilizadas em APIs, geralmente retornando dados em formato JSON.

Rotas para Views

As rotas que retornam uma view são as mais comuns.

PHP

Route::get('/about', function () {
    return view('about');
});

Este código define uma rota para a URL /about e retorna a view about.blade.php localizada na pasta resources/views.

Rotas de Redirecionamento

As rotas de redirecionamento são utilizadas para redirecionar o usuário de uma URL para outra.

PHP

use Illuminate\Support\Facades\Route;

Route::get('/old-url', function () {
    return redirect('/new-url');
});

Neste exemplo, qualquer requisição para a URL /old-url será redirecionada para a URL /new-url.

Listando suas Rotas

Para listar todas as rotas definidas em sua aplicação, utilize o seguinte comando no terminal:

Bash

php artisan route:list

Parâmetros de Rota

Parâmetros de rota permitem que você capture partes dinâmicas da URL.

PHP

Route::get('/posts/{id}', function ($id) {
    // Lógica para buscar o post com o ID especificado
    return 'Post com ID: ' . $id;
});

Neste exemplo, o parâmetro {id} capturará o valor numérico da URL e o passará para a função.

Nomeando suas rotas

Rotas nomeadas facilitam a geração de URLs para links e redirecionamentos.

PHP

Route::get('/profile/{user}', function ($user) {
    // ...
})->name('profile');

Para gerar a URL para esta rota, use a função route:

PHP

<a href="{{ route('profile', ['user' => 'johnDoe']) }}">Perfil de John Doe</a>

Grupos de Rotas

Grupos de rotas permitem aplicar atributos comuns a um conjunto de rotas. Neste primeiro exemplo, todas as rotas são métodos do SiteController. Para evitar várias repetições de códigos, que vai dificultar a leitura e manutenção do sistema, temos disso:

PHP

Route::get('/', [SiteController::class, 'index'])->('home');
Route::get('/contato', [SiteController::class, 'contato'])->('contato');
Route::get('/quem-somos', [SiteController::class, 'quemSomos'])->('quem-somos');

Que agrupado, fica assim: – (em sistemas realmente grandes, faz muito sentido agrupar as rotas).

PHP

Route::controller(SiteController::class)->group(function() {
    Route::get('/', 'index')->name('home');
    Route::get('/contato', 'contato')->('contato');
    Route::get('/quem-somos', 'quemSomos')->('quem-somos);
});

Muito mais fácil e intuitivo de ler e entender qual o controller que gerencia essas rotas, convenhamos!!!

Seu sistema tem uma área onde apenas usuários logados podem ter acesso? Agrupe as rotas utilizando o middleware auth.

Route::middleware('auth')->group(function() {
    Route::controller(AppController::class)->group(function() {
       Route::get('/dashboard', 'dashboard')->name('dashboard');
       Route::get('/perfil/{id}', 'perfil')->name('perfil');
    });
});

Dessa forma agrupamos as rotas, onde é preciso o usuários estar logado para ter acesso a certas informações, sob a tutela do middleware auth(). Se não estiver logado, não acessa!

Cache de Rotas

O cache de rotas pode melhorar o desempenho da sua aplicação, especialmente em aplicações maiores.

Bash

php artisan route:cache

Este comando gera um arquivo de cache contendo todas as rotas definidas.

Pode ser que em algum momento em seu pojeto, seja preciso limpar esse cache para que alguma atualização ou edição em uma rota seja “enxergada”. Entre com o seguinte comando e limpe o cache de rotas.

Bash

php artisan route:clear

Conclusão

As rotas são um dos pilares do Laravel. Ao dominar os diferentes tipos de rotas e suas funcionalidades, você estará apto a criar aplicações web robustas e escaláveis.

Dicas Adicionais:

  • Utilize rotas nomeadas: Elas facilitam a manutenção do código e a geração de URLs.
  • Organize suas rotas: Mantenha seus arquivos de rotas organizados e fáceis de entender.
  • Utilize grupos de rotas: Agrupe rotas relacionadas para aplicar atributos comuns.
  • Explore os recursos avançados: O Laravel oferece recursos avançados como rotas de recursos e rotas de API.
  • Consulte a documentação: A documentação oficial do Laravel é uma fonte rica de informações sobre rotas.

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
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