Tutorial kali ini akan membahas mengenai penggunaan Seeder di Codeigniter 4.Sebelum mengikuti tutorial ini ada baiknya kita mengenali apa itu seed dan kapan kita butuh menggunakannya.
Apa itu Seeder ?
Seeder adalah fitur di codeigniter 4 yang berguna untuk membuat sample data atau dummy data dengan perintah sederhana.Seeder membuat kita tidak perlu menginput secara langsung saat proses testing.Hal ini dapat mempercepat proses development kita.Karena kita bisa menggunakan berulang kali setelah dibuat.
Membuat Seeder
Perlu diketahui folder default untuk Seeder codeigniter 4 terletak di app/Database/Seeds.Sampai saat tutorial ini dibuat ,Seeder di codeigniter 4 belum memiliki cli command untuk membuat seeder,jika teman pernah pakai laravel,laravel punya cli command untuk membuat seeder.
Untuk membuat Seeder di codeigniter 4 kita perlu membuat file secara manual.
Misalnya kita ingin membuat Seeder untuk table Users dengan struktur seperti dibawah ini.
Maka pertama kita buat file bernama UserSeeder.php di folder app/Database/Seeds.Untuk penamaan file sebaiknya nama untuk mewakili sample data. Kemudian isi dengan kode dibawah ini.
<?php namespace App\Database\Seeds;
class UserSeeder extends \CodeIgniter\Database\Seeder
{
public function run()
{
$data = [
[
'username' => 'medanincode',
'password' => 123456
],
[
'username' => 'john',
'password' => 123456
]
];
$this->db->table('users')->insertBatch($data);
}
}
Secara default Seeder hanya punya satu fungsi yaitu run.Fungsi inilah yang akan di eksekusi saat perintah seed dipanggil.
Bisa dilihat di Seeder di atas kita memasukkan dua data dari dalam array ke table users menggunakan insertBatch.
Menggunakan Seeder
Untuk menggunakan Seeder ada 2 cara,pertama menggunakan kode seperti dibawah ini.
$seeder = \Config\Database::seeder();
$seeder->call('UserSeeder');
atau memanggil menggunakan terminal/CMD,masuk dulu ke direktori folder anda dari terminal.Kemudian ketikkan perintah:
php spark db:seed UserSeeder
Menggunakan Banyak Seeder
Jika kita mempunyai banyak Seeder bakal repot jika kita memanggil satu persatu seperti cara diatas.Oleh karena itu kita bisa menggabungkannya seperti cara dibawah ini.
<?php namespace App\Database\Seeds;
class DataSeeder extends \CodeIgniter\Database\Seeder
{
public function run()
{
$this->call('PostSeeder');
$this->call('CategorySeeder');
$this->call('UserSeeder');
}
}
Jadi kita tinggal memanggil satu Seeder yaitu DataSeeder.
Sekian tutorial kali ini semoga bermanfaat.