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