🚀 Capítulo 17: Operações Secretas com Eloquent (Tema: Missão Impossível)
NOTE
Este capítulo utiliza a temática de Missão Impossível para explicar o Eloquent ORM no Laravel. Aprenda a manipular o banco de dados sem digitar comandos SQL!
1. 🎯 Objetivo da Aula
Compreender o conceito de ORM (Object-Relational Mapping) através do Eloquent do Laravel, aprendendo a fazer as operações básicas de banco de dados (CRUD: Criar, Ler, Atualizar e Deletar) usando apenas código PHP.
2. 🏢 O Cenário Prático (Seu Desafio)
O agente secreto Ethan Hunt precisa gerenciar a lista de espiões da sua equipe. Ele precisa cadastrar novos agentes, buscar a ficha de um agente específico, atualizar o status da missão e, se um agente for capturado ou virar casaca, deletar o registro dele do sistema!
No Laravel, para não precisarmos escrever comandos SQL complexos (como SELECT * FROM agentes), nós usamos o Eloquent ORM.
- O Eloquent cria uma classe especial chamada Model para cada tabela do banco.
- Mexer nessa classe em PHP altera automaticamente os dados reais lá no banco de dados! Seu desafio é gerenciar essa equipe secreta!
🧠 Fundamentos: A Teoria Traduzida
🕵️♂️ 1. O que é um Model?
É a classe que representa a sua tabela. Se você tem a tabela agentes, você cria o model Agente.
php artisan make:model Agente📝 2. As Operações do CRUD:
Criar (Create):
$agente = new Agente();
$agente->nome = "Ethan Hunt";
$agente->save(); // Salva no banco!Ler (Read):
$todos = Agente::all(); // Pega todos os agentes
$umAgente = Agente::find(1); // Busca o agente com ID 1Atualizar (Update):
$agente = Agente::find(1);
$agente->status = "Em missão";
$agente->save(); // Atualiza no banco!Deletar (Delete):
$agente = Agente::find(1);
$agente->delete(); // Apaga do banco!4. 📖 Exemplo Guiado: O Relatório do Ethan
Veja como é simples buscar todos os agentes e exibir o nome deles usando o Eloquent dentro de um Controller:
<?php
namespace App\Http\Controllers;
use App\Models\Agente;
class AgenteController extends Controller {
public function listar() {
$agentes = Agente::all();
foreach ($agentes as $agente) {
echo "Agente secreto: " . $agente->nome . "\n";
}
}
}
?>5. 🛠️ Prática Obrigatória 1: Buscando Dados
- Qual é o método do Eloquent (como visto no texto) que usamos para buscar um registro específico no banco passando apenas o número do ID dele?
6. 🛠️ Prática Obrigatória 2: Salvando Dados
- Depois de criar um novo objeto e preencher os dados dele, qual método devemos chamar para que o Eloquent realmente grave as informações no banco de dados?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 17 PHP_MissaoImpossivel) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
spec_backend_com_php_e_laravel/
├── capitulos/
│ └── capitulo_17_missao_impossivel.md💡 Checkpoint de Lógica
O Eloquent assume por padrão que a sua tabela está no plural (ex: agentes) e que o seu Model está no singular (ex: Agente). Se você seguir esse padrão, não precisará configurar quase nada!
10. 🔥 Desafio de Fixação
Pesquise como fazer uma busca filtrada usando o Eloquent (Dica: procure pelo método Agente::where(...)).
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
- Usamos o método
find(), exemplo:Agente::find($id). Gabarito da Prática 2: - Devemos chamar o método
save().