0Pricing
PHP Academy · Pelajaran

Model dan Migrasi Eloquent

Buat model dan migrasi basis data dengan perintah Artisan.

Model dan Migrasi Eloquent adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Apa Itu Eloquent?

Eloquent adalah ORM ActiveRecord Laravel. Setiap tabel basis data memiliki kelas Model yang sesuai, yang merepresentasikan satu baris dan menyediakan metode kueri.

Membuat Model

Gunakan Artisan untuk membuat model. Tambahkan -m untuk juga membuat berkas migrasi.

$ php artisan make:model Post -m
# Creates:
# app/Models/Post.php
# database/migrations/xxxx_create_posts_table.php

Kelas Model

Model Eloquent minimal hanya perlu memperluas Model. Eloquent menyimpulkan nama tabel dari nama kelas (snake_case jamak).

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = ["title", "body", "user_id"];
}

Berkas Migrasi

Migrasi menentukan skema tabel. Jalankan php artisan migrate untuk menerapkannya.

<?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();
    });
}

Menjalankan Migrasi

Terapkan migrasi yang tertunda ke basis data.

$ php artisan migrate
# Rollback:
$ php artisan migrate:rollback
# Fresh (drop all and re-migrate):
$ php artisan migrate:fresh

$fillable vs $guarded

$fillable menetapkan kolom yang diizinkan untuk pengisian massal. $guarded memblokir kolom. Jangan pernah menetapkan $guarded = [] di lingkungan produksi tanpa pertimbangan matang.

<?php
// Whitelist approach (recommended):
protected $fillable = ["title", "body"];

// Blacklist approach:
protected $guarded = ["id", "created_at"];

Konversi Tipe

Properti $casts secara otomatis mengonversi nilai kolom menjadi tipe PHP.

<?php
protected $casts = [
    "is_published" => "boolean",
    "metadata"     => "array",       // JSON column
    "published_at" => "datetime",
];

Tersembunyi dan Terlihat

Properti $hidden mengecualikan kolom dari serialisasi JSON/array — berguna untuk kata sandi dan token.

<?php
protected $hidden = ["password", "remember_token"];

Nama Tabel Kustom

Timpa nama tabel bawaan dengan properti $table.

<?php
protected $table = "blog_posts"; // instead of "posts"

Penghapusan Lunak

Tambahkan sifat SoftDeletes dan kolom deleted_at. Catatan tidak benar-benar dihapus — catatan tersebut ditandai dengan stempel waktu dan dikecualikan dari kueri normal.

<?php
use Illuminate\Database\Eloquent\SoftDeletes;

class Post extends Model {
    use SoftDeletes;
}

Stempel Waktu

Secara bawaan, Eloquent mengelola kolom created_at dan updated_at. Tetapkan $timestamps = false untuk menonaktifkannya.

Ringkasan

Model Eloquent dipetakan ke tabel basis data. Gunakan Artisan untuk membuat model dan migrasi secara bersamaan. Tentukan $fillable demi keamanan pengisian massal. Gunakan $casts untuk konversi tipe otomatis.

Pemeriksaan Singkat

Opsi Artisan mana yang membuat migrasi sekaligus dengan model?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Model dan Migrasi Eloquent” gratis?

Ya — teks lengkap “Model dan Migrasi Eloquent” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Model dan Migrasi Eloquent”?

Buat model dan migrasi basis data dengan perintah Artisan. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Model dan Migrasi Eloquent” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Model dan Migrasi Eloquent
  2. CRUD dengan Eloquent
  3. Relasi Eloquent
  4. Pemuatan Awal dan Scope Kueri
← Kembali ke PHP Academy