Cara Membuat Factory, Seeder dan Faker Untuk Laravel 10

 

Ketika membuat aplikasi pasti kita membutuhkan data masukkan untuk menguji apakah aplikasi berjalan dengn baik. Tentu kalo datanya masih sedikit, kita secara manual memasukkan lewat form/request ke dalam server. Namun, kita juga bisa memasukkannya secara manual melalui Databae Client seperti phpmyadmin, MySQL Workbench, Robo3T dan lainnya. Kali ini kita akan belajar bagaimana cara membuat factory, seeder, dan faker sehingga kita bisa mengisi database dengan lebih otomatis

Saya sendiri menjalankan seeding sering sekali untuk menguji apakah aplikasi web saya bisa berhasil me-load data dengan baik. Daripada saya ngisi data banyak banyak dan menghabiskan waktu, kenapa tidak dengan command line yang singkat data bisa terisi dengan cepat

Misal saya membutuhkan tabel berisi data data produk lengkap dengan isinya. Tabel ini berisi field nama produk, harga, gambar produk dan deskripsi. Kita membuat factornya terlebih dahulu dengan perintah berikut

php artisan make:factory ProductFactory

Perintah ini akan membuat file ProductFactory di dalam folder databases. Masukkan kode berikut


Dari kode diatas kita memiliki function fake() yang sudah otomatis terinstall di dalam Laravel. Jadi kita tidak perlu menginstal faker lagi

 

Baca Juga: Laravel Kickstart. Hal Yang Harus Disiapkan Untuk Aplikasi Web Pertama Kamu

Kalian bisa eksplor lebih jauh tentang faker() ini di dalam dokumentasinya 


 Setelah itu kita harus menjalankan factory ini di dalam file DatabaseSeeder yang berada dalam folder databases/seeders

    

 

 

Baca Juga:  Cara Instal Laravel Livewire

Kalian bisa mengganti angka 10 menjadi angka yang kalian inginkan. Ini akan mengenerate berapa jumlah yang dibutuhkan. Kalo 5 berarti akan ada 5 row data yang dibuat pada tabel secara otomatis

php artisan migrate:fresh --seed


Kalo kalian lihat di databasenya (disini saya menggunakan MySQL Workbench), kalian akan menjumpai tabel kita sudah diisi dengan data data random seperti berikut



Post a Comment (0)
Previous Post Next Post