🎯 Tujuan Pembelajaran
Pada materi ini, akan mempelajari:
- Cara membuat Model di Laravel untuk mengelola data di database.
- Cara membuat dan menjalankan Seeder untuk mengisi data awal.
- Memahami fungsi
$fillablepada Model. - Memahami struktur folder Model dan Seeder di Laravel.
Materi & Langkah Praktik
1. Membuat Model Product
Pertama, buat model baru untuk produk menggunakan Artisan:
php artisan make:model Product
Perintah ini akan menghasilkan file model di:
app/Models/Product.php
Model ini akan digunakan untuk berinteraksi dengan tabel products di database.
2. Mengedit Model Product.php
Tambahkan properti $fillable agar Laravel mengetahui kolom mana saja yang boleh diisi menggunakan mass assignment:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
protected $fillable = ['name', 'price', 'description', 'stock', 'image'];
}
Penjelasan:
$fillableadalah proteksi keamanan di Laravel.- Fungsinya mencegah pengisian kolom secara sembarangan.
- Hanya kolom yang disebutkan di dalam array yang bisa diisi melalui method seperti
create().
3. Membuat Seeder ProductSeeder
Seeder digunakan untuk mengisi data contoh (dummy data) ke dalam tabel. Buat seeder dengan perintah:
php artisan make:seeder ProductSeeder
Struktur folder seeder:
database/
└── seeders/
├── DatabaseSeeder.php # Seeder induk
└── ProductSeeder.php # Tempat kita menambahkan data awal
File ProductSeeder.php akan berada di:
database/seeders/ProductSeeder.php
Isi file seeder:
<?php
namespace Database\Seeders;
use App\Models\Product;
use Illuminate\Database\Seeder;
class ProductSeeder extends Seeder
{
public function run(): void
{
Product::create([
'name' => 'Laptop Asus',
'price' => 8500000,
'description' => 'Laptop untuk kebutuhan kantor dan kuliah',
'stock' => 10,
]);
Product::create([
'name' => 'Mouse Logitech',
'price' => 150000,
'description' => 'Mouse wireless nyaman digunakan',
'stock' => 50,
]);
}
}
Catatan:
Karena kolom
imagebersifat nullable, maka pada tahap ini boleh dikosongkan terlebih dahulu.
4. Menjalankan Seeder Melalui DatabaseSeeder.php
Laravel membutuhkan pendaftaran seeder di file induknya sebelum bisa dijalankan.
Buka:
database/seeders/DatabaseSeeder.php
Tambahkan pemanggilan:
public function run(): void
{
$this->call(ProductSeeder::class);
}
Penjelasan untuk mahasiswa:
DatabaseSeeder.phpadalah seeder utama.- Semua seeder lain harus didaftarkan di sini agar bisa berjalan bersama.
5. Menjalankan Seeder
Jalankan perintah:
php artisan db:seed
Kemudian cek tabel products pada database.
Jika berhasil, akan muncul data produk yang telah Anda buat di ProductSeeder.
Struktur Folder Penting
project-laravel/
├── 📁 app/
│ └── 📁 Models/
│ └── Product.php
├── 📁 database/
│ └── 📁 seeders/
│ ├── DatabaseSeeder.php
│ └── ProductSeeder.php
├── 📁 routes/
└── 📁 resources/
Penjelasan terkait struktur folder:
app/Models→ tempat semua model Laravel disimpan.database/seeders→ tempat file seeder berada.DatabaseSeeder.php→ seeder utama yang menjalankan semua seeder lainnya.
