Modelos Eloquent e migrações
Gere modelos e migrações de banco de dados com comandos do Artisan.
Modelos Eloquent e migrações é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.
O que é Eloquent?
Eloquent é o ORM ActiveRecord do Laravel. Cada tabela do banco de dados tem uma classe Model correspondente, que representa uma linha e fornece métodos de consulta.
Gerando um Model
Use o Artisan para criar um Model. Adicione -m para gerar também um arquivo de migração.
$ php artisan make:model Post -m
# Creates:
# app/Models/Post.php
# database/migrations/xxxx_create_posts_table.phpA Classe Model
Um Model mínimo do Eloquent só precisa estender Model. O Eloquent deduz o nome da tabela a partir do nome da classe (plural em snake_case).
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = ["title", "body", "user_id"];
}Arquivo de Migração
A migração define o esquema da tabela. Execute php artisan migrate para aplicá-la.
<?php
public function up(): void
{
Schema::create("posts", function (Blueprint $table) {
$table->id();
$table->string("title");
$table->text("body");
$table->foreignId("user_id")->constrained()->cascadeOnDelete();
$table->timestamps();
});
}Executando Migrações
Aplique ao banco de dados as migrações pendentes.
$ php artisan migrate
# Rollback:
$ php artisan migrate:rollback
# Fresh (drop all and re-migrate):
$ php artisan migrate:fresh$fillable vs $guarded
$fillable define uma lista de permissões para as colunas na atribuição em massa. $guarded define uma lista de bloqueio. Nunca defina $guarded = [] em produção sem pensar cuidadosamente.
<?php
// Whitelist approach (recommended):
protected $fillable = ["title", "body"];
// Blacklist approach:
protected $guarded = ["id", "created_at"];Conversões de Tipo
A propriedade $casts converte automaticamente os valores das colunas para tipos do PHP.
<?php
protected $casts = [
"is_published" => "boolean",
"metadata" => "array", // JSON column
"published_at" => "datetime",
];Ocultos e Visíveis
A propriedade $hidden exclui colunas da serialização para JSON ou matriz — útil para senhas e tokens.
<?php
protected $hidden = ["password", "remember_token"];Nome de Tabela Personalizado
Substitua o nome padrão da tabela usando a propriedade $table.
<?php
protected $table = "blog_posts"; // instead of "posts"Exclusões Lógicas
Adicione o traço SoftDeletes e uma coluna deleted_at. Os registros não são realmente excluídos — recebem uma marcação de data e hora e são excluídos das consultas normais.
<?php
use Illuminate\Database\Eloquent\SoftDeletes;
class Post extends Model {
use SoftDeletes;
}Marcas de Data e Hora
Por padrão, o Eloquent gerencia as colunas created_at e updated_at. Defina $timestamps = false para desativar esse comportamento.
Resumo
Os Models do Eloquent correspondem às tabelas do banco de dados. Use o Artisan para gerar Models e migrações juntos. Defina $fillable para garantir a segurança da atribuição em massa. Use $casts para a conversão automática de tipos.
Verificação Rápida
Qual sinalizador do Artisan gera uma migração junto com um Model?
Perguntas Frequentes
A aula “Modelos Eloquent e migrações” é grátis?
Sim — o texto completo de “Modelos Eloquent e migrações” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.
O que vou aprender em “Modelos Eloquent e migrações”?
Gere modelos e migrações de banco de dados com comandos do Artisan. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar PHP Academy?
Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Modelos Eloquent e migrações”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de PHP Academy?
Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Modelos Eloquent e migrações
- CRUD com Eloquent
- Relacionamentos do Eloquent
- Carregamento antecipado e escopos de consulta