
Fitur seeding pada laravel merupakan salah satu fitur menarik lainnya dari framework laravel, Seeding berguna untuk membuat contoh data(dummy) sebagai uji percobaan suatu aplikasi.
Hal yang mendasari adanya seeding yaitu developers tidak perlu memasukan data melalui database satu persatu.
Sebelumnya kita sudah berhasil melakukan crud dengan database tabel pegrawai, namun kali ini saya ingin menggunakan tabel users, tabel users secara default akan ada di migration, namun saya tidak akan menggunakan itu, silahkan hapus saja migration defaultnya kemudian kita akan menggunakan skema tabel di bawah ini.
Anda bebas ingin membuat tabel menggunakan migration maunpun tidak.
1 2 3 4 5 6 7 8 9 10 11 12 | CREATE TABLE `users` ( `id` Int( 10 ) UNSIGNED AUTO_INCREMENT NOT NULL, `username` VarChar( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `email` VarChar( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `password` VarChar( 255 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `created_at` Timestamp NULL, `updated_at` Timestamp NULL, PRIMARY KEY ( `id` ) ) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ENGINE = InnoDB AUTO_INCREMENT = 1; |
untuk membuat seeder anda dapat menggunakan perintah php artisan seperti lainnya cara nya cukup mudah.
1 | php artisan make:seeder IniSedUser |
Perintah php artisan diatas, dimana kata seeder merupakan perintah yang digunakan, sedangkan IniSedUser merupakan nama file dan Class yang di buat.
Hasil pembuatan seeding terdapat di database/seeds/*namaseeder.php
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php use Illuminate\Database\Seeder; class IniSedUser extends Seeder { public function run() { //ini untuk menajalankan } } |
Kode diatas merupakan kode seeder yang telah kita buat, kemudian ubah menjadi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php use Illuminate\Database\Seeder; class IniSedUser extends Seeder { public function run() { DB::table('users')->insert([ 'username' => 'Didik Prabowo', 'password' => bcrypt('password') ]); } } |
Perintah diatas sebenernya perintah yang digunakan untuk insert data menggunakan query builder,anda juga bisa dapat membuat menggunakan elequent ORM. Untuk perintahnya silahkan baca di insert data elequent ORM.
Setelah kita berhasil membuat seeder selanjutnya kita harus menjalankannya dengan perintah.
1 | php artisan db:seed --class=IniSedUser |
Perintah di atas perintah artisan yang digunakan untuk melakukan terhadap isi perintah di dalam fungsi up. Kalau sudah silahkan periksa di database khususnya tabel users.

Maka akan muncul data yang kita masukan di file seeder tadi. cukup menarik bukan.
Pada seeder di atas data yang kita masukan hanya satu, lalu bagaimana cara memasukan data yang banyak, data yang digenerate. Hal itu dapat kita lakukan menggunakan model factory.
Untuk menggunakan model factory ini cukup mudah, terdapat file model factory secara default bawaan laravel yaitu di database/factories/ModelFactory.php.
Nah, kita akan menggunakan factory tersebut, silahkan ubah model factory menjadi kode seperti di bawah ini.
1 2 3 4 5 6 7 8 | $factory->define(App\User::class, function (Faker\Generator $faker) { static $password; return [ 'username' => $faker->username, 'email' => $faker->unique()->safeEmail, 'password' => $password ?: $password = bcrypt('secret'), ]; }); |
file factory ini dapat kita panggil dari manapun, misalnya dari controller. Namun pada kesempatan kali ini saya akan memanggilnya di Seeder yang telah buat IniSedUser.php. Kemudian ganti kode nya seperti di bawah ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | php use Illuminate\Database\Seeder; class IniSedUser extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $users = factory(\App\User::class, 10)->create(); } } |
Kode di dalam fungsi up itu digunakan untuk memanggil model factory, ada kata 10, hal itu digunakan untuk menentukan jumlah dummy data yang ingin kita masukan. Kemudian ketikan perintah yang sama yaitu.
1 | php artisan db:seed --class=IniSedUser |
Kemudian silahkan periksa di databasenya.

Nah maka akan muncul 10 data baru di tabel users. Namun datanya agak asing pasti di telinga kita tapi ya seperti itu yang namanya data dummy, Penggunaan data dummy model factory dapat digunakan untuk tahap pengembangan saja.
Sekian tutorial yang dapat saya sampaikan.
Semoga bermanfaat.