0Pricing
PHP Academy · Aula

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

A 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

  1. Modelos Eloquent e migrações
  2. CRUD com Eloquent
  3. Relacionamentos do Eloquent
  4. Carregamento antecipado e escopos de consulta
← Voltar para PHP Academy