Model dan Seeder untuk Mempercepat Pembuatan Web menggunakan Laravel

Posted By

on

Kali ini saya akan menulis tentang cara membuat model dan seeder di Laravel. Model dan Seeder ini akan sangat berguna ketika kita akan memulai sebuah project. Model dan Seeder ini akan membantu kita mempercepat inisiasi awal project. Sebelumnya, pastikan laravel sudah terinstall di server teman-teman ya. Jika belum, silahkan lihat caranya di artikel sebelumnya yaitu Cara Install Laravel Terbaru.

Pada tutorial kali ini saya menggunakan Laravel 5.7.8 untuk membuat model dan seeder ini.

Langkah 1: Membuat Model

Kita akan membuat model via artisan. Pertama, masuk dahulu ke dalam folder proyek laravel. kemudian ketikan perintah berikut:

php artisan make:model Student -m

Kode di atas akan menghasilkan file model bernama Student dan dan file migration untuk membuat table students.

Kemudian edit file migration yang kita buat tadi. Biasanya terletak di /database/migration/tanggal_pembuatan_create_students_table. File migration ini akan otomatis membuat nama file menggunakan tanggal migration tersebut dibuat. Ubah file tersebut menjadi seperti berikut.

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateStudentsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('students', function (Blueprint $table) {
            $table->increments('id');
            $table->string('first_name', 50)->nullable(false);
            $table->string('last_name', 50)->nullable(true);
            $table->enum('gender', ['male','female']);
            $table->string('email', 50)->unique();
            $table->string('phone_number', 50)->nullable(false);
            $table->string('address', 255);
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('students');
    }
}

Kode diatas berfungsi untuk mendefinisikan field-field apa saja yang akan dibuat dalam tabel students. Jika sudah selesai dengan file migrationnya silahkan ketikan perintah berikut:

php artisan migrate

Setelah menjalankan perintah tersebut maka akan langsung dibuat tabel bernama students di database.

Langkah 2: Mengisi Tabel dengan Data

Setelah tabelnya terbentuk maka selanjutnya kita akan mengisi tabel tersebut dengan data dummy menggunakan Model Factory. Untuk mengisi data dummy tersebut saya menggunakan package bernama faker. Untuk membuatnya ketikan perintah berikut:

php artisan make:factory StudentFactory

Perintah di atas akan menghasil sebuah file bernama StudentFactory.php yang berada di /database/factories/. Kemudian ubah file tersebut menjadi seperti berikut.

use Faker\Generator as Faker;

$factory->define(\App\Student::class, function (Faker $faker) {
    $gender = $faker->randomElement($array = array ('male', 'female'));
    return [
        'first_name' => $faker->firstName($gender),
        'last_name' => $faker->lastName,
        'email' => $faker->email,
        'phone_number' => $faker->phoneNumber,
        'gender' => $gender,
        'address' => $faker->address,
    ];
});

Kemudian kita akan membuat file seedernya. Ketikan perintah berikut ini.

php artisan make:seeder StudentsTableSeeder

Perintah tersebut akan menghasilkan file seeder bernama StudentsTableSeeder yag berada di /database/seeds/. Kemudian ubah isi file tersebut menjadi seperti berikut ini.

use Illuminate\Database\Seeder;

class StudentsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        factory(\App\Student::class, 30)->create();
    }
}

30 adalah jumlah data dummy yang akan kita masukkan kedalam table students “masing masing data itu isinya apa?” masing masing yang akan diinsert sudah digenerate secara random dan otomatis oleh Faker, yang merupakan fungsi Model Factory tadi.

Kemdian kita harus memanggil seeder ini dari datbase/seeds/DatabaseSeeder.php pada method run yang ada pada file tersebut.

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        // $this->call(UsersTableSeeder::class);
        $this->call(StudentsTableSeeder::class);
    }
}

Jika semua sudah siap, lalu jalan seedernya dengan menggunakan perintah:

php artisan db:seed

Jika tidak ada error maka tabel students tadi sekarang akan terisi data sebanyak 30 baris. Berhasil?

Selanjutnya kita akan belajar tentang bagaimana membuat API dari tabel yang telah kita buat ini. Sampai bertemu di tutorial selanjutnya 😉

Leave a comment