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.phpKelas 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
- Model dan Migrasi Eloquent
- CRUD dengan Eloquent
- Relasi Eloquent
- Pemuatan Awal dan Scope Kueri