1. Analogi Migration, seeder, model
Migration, Seeder, dan Model adalah tiga komponen Laravel yang bekerja sama mengelola database. Agar mudah dibayangkan, mari kita analogikan ketika konsep tersebut menjadi sebuah gedung arsip.
Ketiganya menjawab tiga pertanyaan dasar berikut:
- Di mana data akan disimpan, dan seperti apa bentuk rak-raknya? Jawabannya adalah Migration.
- Bagaimana agar rak-rak itu tidak kosong saat pertama dibuka? Jawabannya adalah Seeder.
- Bagaimana kode PHP kita bisa mengambil dan menyimpan data dengan nyaman? Jawabannya adalah Model.
|
konsep laravel |
peran |
tugas |
|---|---|---|
Database |
Gedung arsip |
tempat semua data disimpan |
Migration |
Denah rak penyimpanan |
Menentukan rak (tabel) apa saja yang ada dan sekat (kolom) di tiap rak |
Seeder |
Pengisi rak pertama |
mengisi berkas awal supaya gedung tidak kosong ketika dibuka |
Model |
Petugas arsip (penerjemah) |
Kamu cukup bilang "carikan data mahasiswa angkatan 2023", petugas yang berjalan ke rak |
MIGRATION
Migrasi adalah alat yang kuat dalam Laravel yang memungkinkan kita untuk mengelola perubahan pada struktur basis data secara terstruktur. kita bisa membuat, mengubah, dan menghapus tabel serta kolom dengan mudah menggunakan migrasi. Setiap migrasi direpresentasikan sebagai file PHP yang mencatat perubahan basis data.
Dalam migration Laravel:
up(): Menjalankan perubahan pada database, misalnya membuat tabel baru, menambahkan kolom, atau mengubah struktur tabel.down(): Membatalkan perubahan yang dilakukan olehup(), misalnya menghapus tabel atau mengembalikan struktur tabel ke kondisi sebelumnya.
1. membuat migration baru
Kita bisa membuat file migration baru dengan menjalankan perintah berikut pada terminal:
Setelah migrasi dibuat, kita bisa mendefinisikan perubahan yang ingin kita lakukan pada struktur basis data, seperti membuat tabel baru, menambahkan kolom, atau mengubah indeks.
2. contoh file migration
id(): Membuat primary key otomatis.string('nama'): Menyimpan nama mahasiswa.string('nim')->unique(): Menyimpan NIM yang tidak boleh duplikat.timestamps(): Menambahkan kolomcreated_atdanupdated_at.dropIfExists(): Menghapus tabel ketika migration dibatalkan.
3. perintah - perintah migration
php artisan migrate: Menjalankan migration yang belum diterapkan.php artisan migrate:status: Menampilkan status migration.php artisan migrate:rollback: Membatalkan batch migration terakhir.php artisan migrate:rollback --step=2: Membatalkan dua migration terakhir.php artisan migrate:reset: Membatalkan seluruh migration.php artisan migrate:refresh: Membatalkan seluruh migration, lalu menjalankannya kembali.php artisan migrate:fresh: Menghapus semua tabel, lalu menjalankan seluruh migration dari awal.
SEEDER
Seeder adalah alat yang memungkinkan kita untuk mengisi data awal dalam tabel basis data. Ini sangat berguna ketika kita ingin memiliki data contoh atau data awal yang konsisten di seluruh pengembangan atau produksi.
1. membuat file seeder
kita dapat membuat file seeder dengan perintah berikut:
2. contoh file seeder
- 
DB::table(): Menentukan tabel yang akan diisi. insert(): Memasukkan beberapa data sekaligus.- Data mahasiswa dimasukkan dalam bentuk array yang berisi nama dan NIM.
3. perintah untuk menjalankan seeder
php artisan db:seed: MenjalankanDatabaseSeeder.php.php artisan db:seed --class=NamaFileSeeder: Menjalankan seeder tertentu, misalnyaarticleSeeder.php.php artisan migrate:fresh --seed: Menghapus semua tabel, menjalankan ulang migration, lalu mengisi data awal melalui seeder.
File seeder yang ingin dijalankan melalui perintah php artisan db:seed harus didaftarkan terlebih dahulu di file utama DatabaseSeeder.php menggunakan method call().
MODEL
Model merupakan komponen Laravel yang berfungsi untuk berinteraksi dengan tabel database, seperti mengambil, menambahkan, memperbarui, dan menghapus data. Model menggunakan Eloquent ORM untuk menghubungkan kode PHP dengan tabel database. Secara default, Laravel menghubungkan model dengan tabel berdasarkan nama model dalam bentuk jamak. Contohnya, model Mahasiswa akan terhubung dengan tabel mahasiswas.
1. cara membuat model
kita bisa membuat file model dengan menjalankan perintah berikut pada terminal:
Perintah tersebut menghasilkan file NamaModel.php di direktori app/Models/.
2. contoh file model
extends Model: Menjadikan class sebagai model Eloquent.$fillable: Menentukan kolom yang boleh diisi melalui mass assignment, yaitunamadannim.Mahasiswa: Secara default terhubung dengan tabelmahasiswas.
Praktik membuat migration, seeder, model untuk sistem perpustakaan
1. buat migration
Buka file migration di database/migrations/, lalu isi method up() dan down() berikut:
id(): Membuat primary key otomatis.string('kode_buku')->unique(): Menyimpan kode buku yang tidak boleh duplikat.string('judul'): Menyimpan judul buku.string('penulis'): Menyimpan nama penulis.year('tahun_terbit'): Menyimpan tahun terbit buku.timestamps(): Menambahkan kolomcreated_atdanupdated_at.down(): Menghapus tabelbukusketika migration dibatalkan.
kemudian jalankan migration menggunakan perintah berikut:
2. membuat model
buat file model dengan menjalankan perintah berikut:
kemudian Buka file app/Models/Buku.php, lalu isi dengan kode berikut:
extends Model: Menjadikan classBukusebagai model Eloquent.$fillable: Menentukan atribut yang boleh diisi melalui mass assignment.Buku: Secara konvensi terhubung dengan tabelbukus.
3. buat seeder
buat file seeder dengan menjalankan perintah berikut:
Buka file database/seeders/BukuSeeder.php, kemudian isi dengan kode berikut:
Buku: Model yang digunakan untuk mengakses tabelbukus.run(): Method yang dieksekusi ketika seeder dijalankan.Buku::create(): Menambahkan data buku menggunakan Eloquent.- Setiap data memiliki
kode_bukuyang berbeda untuk memenuhi constraintunique.
Agar BukuSeeder dijalankan melalui perintah php artisan db:seed, daftarkan class tersebut di database/seeders/DatabaseSeeder.php.
Method call() digunakan untuk mendaftarkan seeder yang akan dieksekusi ketika seeder utama dijalankan.
kemudian jalankan seeder dengan menjalankan perintah berikut: