;
Belajar Laravel dengan Mudah dan Menyenangkan
Seeder di Laravel adalah alat untuk mengisi tabel database dengan data awal atau data uji coba secara otomatis. Bayangkan seeder seperti cara untuk "menabur" data ke dalam tabel, sehingga kamu tidak perlu memasukkan data secara manual. Ini sangat berguna untuk menguji aplikasi atau menyediakan data default, seperti akun admin atau contoh postingan.
Seeder bekerja dengan tabel yang sudah dibuat di database (biasanya melalui migration). Setelah tabel dibuat, seeder digunakan untuk mengisi tabel tersebut dengan data. Misalnya, jika kamu punya tabel posts, seeder bisa mengisi tabel itu dengan beberapa baris data, seperti judul dan isi postingan.
Berikut langkah-langkah membuat seeder untuk mengisi tabel posts dengan data contoh. Kita asumsikan tabel posts sudah dibuat dengan kolom id, title, content, created_at, dan updated_at (lihat tutorial migration sebelumnya).
Pastikan kamu sudah:
.env.posts menggunakan migration (misalnya, dengan kolom title dan content).php artisan migrate untuk membuat tabel di database.Buat File Seeder
Buka terminal di folder proyek Laravel dan jalankan perintah berikut untuk membuat seeder:
php artisan make:seeder PostsTableSeeder
Ini akan membuat file seeder baru di folder database/seeders dengan nama PostsTableSeeder.php.
Edit File Seeder
Buka file database/seeders/PostsTableSeeder.php dan ubah metode run() untuk mengisi tabel posts dengan data contoh. Contoh kode:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class PostsTableSeeder extends Seeder
{
public function run()
{
DB::table('posts')->insert([
[
'title' => 'Belajar Laravel untuk Pemula',
'content' => 'Ini adalah artikel pertama tentang Laravel.',
'created_at' => now(),
'updated_at' => now(),
],
[
'title' => 'Membuat Aplikasi Web dengan Laravel',
'content' => 'Laravel memudahkan pengembangan aplikasi web.',
'created_at' => now(),
'updated_at' => now(),
],
]);
}
}
Penjelasan:
DB::table('posts')->insert(): Perintah untuk memasukkan data ke tabel posts.insert() mewakili satu baris data dengan nilai untuk kolom title, content, created_at, dan updated_at.now(): Fungsi Laravel untuk mengisi waktu saat ini.Jalankan Seeder
Kembali ke terminal dan jalankan perintah berikut untuk menjalankan seeder:
php artisan db:seed --class=PostsTableSeeder
Perintah ini akan mengisi tabel posts dengan dua baris data sesuai kode di atas.
Cek Hasilnya
Buka database kamu (misalnya, menggunakan phpMyAdmin atau TablePlus) dan periksa tabel posts. Kamu akan melihat dua baris data dengan judul dan isi yang sudah ditentukan.
Jalankan Semua Seeder (Opsional)
Jika kamu punya beberapa seeder, kamu bisa mendaftarkannya di file database/seeders/DatabaseSeeder.php. Edit file tersebut seperti berikut:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run()
{
$this->call(PostsTableSeeder::class);
}
}
Lalu, jalankan semua seeder dengan perintah:
php artisan db:seed
Setelah berhasil menggunakan seeder, kamu bisa:
users atau categories.Selamat! Kamu sudah memahami dasar seeder dan berhasil mengisi tabel database dengan Laravel!