Cara Membuat Seeder Factory di Laravel 8

Cara Membuat Seeder Factory di Laravel 8

Dipublikasikan 1 Februari 2021 6:00 AM

Bagaimana cara membuat seeder dari factory di laravel? Cara membuat fake data di laravel? Berikut adalah cara membuat seeder factory di laravel 8.

Apa itu Seeder? Seeder pada laravel merupakan fitur untuk membuat data dummy ketika project akan diuji coba fungsinya. Setiap field akan diisi dengan data yang telah ditentukan pada seeder.

Apa itu Factory? Factory pada laravel merupakan fitur untuk membuat “data”-Nya dengan random. Jika menggunakan seeder maka data yang diisi harus dibuat secara manual, sedangkan dengan bantuan dari factory / faker maka datanya bisa dibuat dengan random dan dapat membuat berapapun data yang diinginkan sebagai data dummy.

Kenapa menggabungkan seeder dan factory? Karena jika digabungkan bisa membuat data dummy hanya dengan menjalankan perintah yang sama. Jika dalam 1 project terdapat banyak seeder dan beberapa dari seeder tersebut menggunakan factory maka cukup jalankan perintah php artisan db:seed untuk generate semua data dummy.

Anda bisa menggunakan tinker untuk membuat data dummy, baik itu manual ataupun menggunakan factory. Namun, akan lebih simple ketika membuat seeder dan factory secara langsung, tergantung dari kebutuhkan.

Cara Membuat Seeder Factory di Laravel 8

Pada file database/seeders/DatabaseSeeder.php tambahkan kode untuk mengeksekusi factory seperti pada kode berikut :

use App\Models\User;

public function run()
{
    ...
    User::factory(10)->create();
}

Keterangan :

  • User adalah model, kenapa dapat memanggil factory? Karena pada app/Models/User.php menggunakan HasFactory sehingga fungsi factory dapat digunakan
  • Cek pada database/factories/UserFactory.php terdapat model yang didefinisikan dari model User, sehingga semuanya saling terhubung.

Karena di laravel 8 tidak otomatis terdeteksi namespace dari model ataupun controller jadi harus di masukkan secara manual lokasi dari class yang dimaksud, maka tambahkan kode berikut pada barisan use dan namespace di file database/seeders/DatabaseSeeder.php :

use App\Models\User;

Sekarang jalankan perintah berikut untuk membuat seeder dari factory :

php artisan db:seed

Jika terdapat tulisan “Database seeding completed successfully.” artinya proses seed data dengan factory berhasil dijalankan.

Bagaimana jika ingin membuat factory dari awal? Jika Anda mengikuti seri tutorial laravel maka lakukan perintah berikut pada terminal project laravel-8-crud.test :

php artisan make:factory ArticleFactory

Buka database/factories/ArticleFactory.php :

public function definition()
{
    return [
        'title' => $this->faker->sentence(5),
        'body'  => $this->faker->sentence(100),
    ];
}

$this->faker adalah perintah menggunakan fungsi dari faker, sentence membuat kalimat dengan jumlah seperti pada kode di atas. Banyak sekali perintah yang dapat dibuat menggunakan faker, Anda bisa baca lengkapnya di Faker.

Buka database/seeders/DatabaseSeeder.php dan tambahkan kode berikut untuk generate data dummny :

use App\Models\Article;

public function run()
{
    ...
    Article::factory(50)->create();
}
php artisan migrate:fresh --seed

Baca Juga : Tutorial CRUD Laravel 8 dengan TailwindCSS

Itulah artikel cara membuat seeder factory di laravel 8 yang dapat saya sampaikan, semoga bermanfaat.

susantokun avatar
susantokun
Hanya seorang programmer yang fokus di bidang web development. Tidak nyaman dengan keramaian dan suka akan keindahan.
Kebijakan Berkomentar :
1. Dilarang berkomentar yang mengandung SPAM, SARA, HOAX, PORNO.2. Mohon sertakan informasi detail saat terjadi error (pesan error, sreenshoot, code, logs, dsb.).