Pular para conteúdo

Aula 04 - Rotas e Controllers 🛤️

🎯 Objetivo da Aula

Dominar o sistema de roteamento do Laravel e entender como os Controllers organizam a lógica de resposta às requisições dos usuários.


📍 Sistema de Rotas

As rotas mapeiam URLs para ações. No Laravel, as rotas web ficam em routes/web.php.

Tipos de Rotas

Podemos responder a diferentes verbos HTTP:

use Illuminate\Support\Facades\Route;

Route::get('/contato', function () {
    return 'Página de Contato';
});

Route::post('/salvar', function () {
    // Processa dados enviados
});


🕹️ Controllers

Em vez de colocar lógica nas rotas, usamos Controllers para manter o código limpo.

Criando um Controller via Artisan

$ php artisan make:controller ProdutoController

Vinculando Rota ao Controller

use App\Http\Controllers\ProdutoController;

Route::get('/produtos', [ProdutoController::class, 'index']);

📊 Fluxo Rota -> Controller

graph LR
    A[URL: /usuarios] --> B{Router}
    B --> C[UserController]
    C --> D[Método: index]
    D --> E[Resposta: View/JSON]

🔗 Parâmetros de Rota

Podemos capturar dados diretamente da URL:

// Rota com parâmetro obrigatório
Route::get('/perfil/{id}', function ($id) {
    return "Usuário ID: " . $id;
});

🛡️ Middlewares

Middlewares agem como "filtros" entre a requisição e a resposta (ex: verificar se o usuário está logado).

Segurança

Nunca deixe rotas administrativas expostas sem o middleware auth.


🧠 Blocos de Destaque

Validação Básica

O Laravel permite validar dados diretamente no Controller usando o método $request->validate().


🛠️ Exercícios Progressivos

  1. Básico: Crie uma rota que receba um nome e retorne "Bem-vindo, [nome]".
  2. Intermediário: Crie um UserController e uma rota que aponte para o método show.
  3. Desafio: Crie um grupo de rotas com o prefixo /admin e proteja-as simulando um middleware.

🚀 Mini-Projeto da Aula

Gerenciador de Links: Crie um sistema de rotas dinâmicas que redirecione o usuário para diferentes redes sociais baseado no parâmetro passado na URL (ex: /social/github -> redireciona para seu perfil). Use um Controller para lidar com os redirecionamentos.


Próxima Aula: Views com Blade