Ilmu Coding Ilmucoding.com - Merupakan situs yang membantu Anda belajar coding lebih mudah, nyaman, interaktif dan profesional. Belajar sekarang di ilmu coding. GRATIS

Tutorial Cara Membuat Seed di Laravel 8

3 min read

Tutorial Cara Membuat Seed di Laravel 8
Loading...

Tutorial Cara Membuat Seed di Laravel 8. Halo teman-teman, kali ini kita akan belajar membuat seed di Laravel 8. Kita juga akan mencontohkan langsung cara membuat seeder di Laravel 8 disertai dengan studi kasus. Selain itu, kita juga mengajak teman-teman untuk membuat data dummy menggunakan factory di Laravel 8.

Penasaran? Yuk kita simak ulasannya.

Baca Juga: Tutorial Laravel 8 Socialite Google Disertai Studi Kasus

Apa Itu Seed?

Secara umum, seed digunakan untuk mengisi record suatu table yang dapat dikostumisasi dengan mudah.

Ini sangat berguna apabila kita ingin menguji query / database yang sudah terisi data agar mudah diolah.

Ketimbang kita harus mengisi data secara manual di database, lebih baik kita membuat seed, lalu dengan suatu command, buuuummm, data yang kita tulis di dalam script langsung pindah ke table yang kita tuju.

Mantap, kan?

Loading...

Oke, langsung saja kita mulai ya …

Laravel 8 Seed : Pembahasan Cara Membuatnya

Pertama, kita siapkan dulu projectnya ya.

Kita akan gunakan composer untuk melakukan installasi Laravel 8.

Jika belum memiliki composer, bisa download melalui link ini.

Jika kamu baru pertama kali mengenal Laravel, sebaiknya baca dulu Tutorial Laravel 8 untuk Pemula.

Jika sudah, silahkan buka terminal / cmd, kemudian ketik command berikut ini:

composer create-project --prefer-dist laravel/laravel blog

Penjelasan:

Loading...

Command composer diperlukan saat kita ingin memulai suatu perintah menggunakan composer.

create-project merupakan command yang berfungsi untuk membuat project baru menggunakan composer.

laravel/laravel menandakan bahwa kita akan membuat project baru di laravel, terutama laravel versi terbaru. Saat ini, versi terbaru adalah versi 8 ya.

Terakhir adalah command blog, menandakan project laravel kita beri nama blog.

Sampai di sini kita sudah siap menggunakan Laravel.

Membuat dan Setting Database di Laravel 8

Silahkan buat database baru, misalnya bernama db_blog ya.

Kemudian kita koneksikan project dengan database yang baru saja kita buat.

Loading...

Caranya buka file .env yang ada di dalam direktori blog/.env.

Cari baris kode berikut ini:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

Nah, ubah pada bagian DB_DATABASE dengan nama database yang kita buat.

Jadi seperti ini:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_blog
DB_USERNAME=root
DB_PASSWORD=

Ngomong-ngomong, jika port database yang kamu gunakan berbeda, silahkan sesuaikan saja ya.

Begitu juga jika databasemu menggunakan username dan password yang berbeda, sesuaikan saja.

Lanjut …

Loading...

Migration Table Users

Untuk dapat menggunakan fitur seed, kita harus menyediakan table yang akan menjadi target seed.

Pada tutorial ini, kita akan menggunakan table users untuk dimigrate.

Loading...

Setelahnya, baru kita buat seednya.

Buat yang belum tahu, Laravel 8 sudah menyediakan migration table users yang ada di dalam direktori database/migrations saat pertama kali install.

Jadi … tak butuh waktu lama, langsung saja kita migrate.

Ketik command berikut ini:

php artisan migrate

Sekarang, silahkan lihat struktur database db_blog, maka akan tercipta table users.

Loading...

Membuat Seed untuk Table Users

Laravel 8 sudah menyediakan file DatabaseSeeder.php yang ada di dalam direktori database/seeders.

Menggunakan file ini adalah cara termudah untuk membuat seed ke table users.

Kamu bisa memodifikasi file tersebut dengan kode di bawah ini:

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
// tambah package db dan hash untuk keperluan seeder
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        DB::table('users')->insert([
            'name' => 'Ilmu Coding',
            'email' => 'ilmucoding.com@gmail.com',
            'password' => Hash::make('admin123'),
            'created_at' => \Carbon\Carbon::now(),
            'email_verified_at' => \Carbon\Carbon::now()
        ]);
    }
}

Penjelasan:

Dari kode di atas, kita akan memasukan satu record ke dalam table users dengan isi:

  • Field name : Ilmu Coding
  • Field email : ilmucoding.com@gmail.com
  • Field password : enkripsi hash admin123
  • Field created_at : diisi dengan tanggal sekarang
  • Field email_verified_at : diisi dengan tanggal sekarang

… Tapi kalau seed yang kita buat banyak, cara ini tidak kita rekomendasikan.

Lebih baik membuat suatu class khusus untuk setiap table, sehingga jauh lebih rapi dan terstruktur.

Loading...

Caranya, kita buat dulu class UserSeeder dengan command di bawah ini:

php artisan make:seed UserSeeder

Maka akan tercipkan file UserSeeder.php di dalam direktori database/seeders.

Kemudian kita modifikasi file UserSeeder.php dengan kode seperti ini:

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;

class UserSeeder extends Seeder
{

    public function run()
    {
        DB::table('users')->insert([
            'name' => 'Ilmu Coding',
            'email' => 'ilmucoding.com@gmail.com',
            'password' => Hash::make('admin123'),
            'created_at' => \Carbon\Carbon::now(),
            'email_verified_at' => \Carbon\Carbon::now()
        ]);
    }
}

Untuk penjelasannya, sama dengan yang sebelumnya ya.

Sekarang, untuk menjalankan class UserSeeder ini, kita membutuhkan tambahan command --class="Nama Class".

Contohnya:

php artisan db:seed --class="UserSeeder"

Selesai?

Loading...

Belum. Ada cara berikutnya nih.

Jika kita tidak ingin menambahkan command –class tetapi ingin menjalankan class UserSeeder, kita bisa memanfaatkan fitur call di DatabaseSeeder.

Caranya, modifikasi file DatabaseSeeder.php dengan kode seperti ini:

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        $this->call(UserSeeder::class);
    }
}

… dengan bantuan $this->call(), kita dapat memanggil class yang akan kita targetkan, sehingga kita tidak perlu menambahkan command –class untuk menjalankannya.

Jadi, cukup command:

php artisan db:seed

buuummm, maka record di table users akan terisi dengan data.

Penutup

Demikianlah tutorial cara membuat seed di Laravel 8 yang sudah kita bahas pada kesempatan kali ini.

Loading...

Mudah-mudahan ada ilmu yang bermanfaat dari tulisan ini.

Baca Juga: Tutorial Laravel 8 Socialite Login dan Register Facebook

Aaamiin.

Loading...

Ilmu Coding Ilmucoding.com - Merupakan situs yang membantu Anda belajar coding lebih mudah, nyaman, interaktif dan profesional. Belajar sekarang di ilmu coding. GRATIS

Leave a Reply

Your email address will not be published. Required fields are marked *

Jika terbantu dengan artikel ini, silahkan share, beri komentar dan "klik" 1 kali pada iklan ya.