Tutorial Laravel Xendit #3 : Membuat Model dan Migration


Tutorial Laravel Xendit #3 : Membuat Model dan Migration

Halo teman-teman semuanya, di artikel sebelumnya kita telah belajar bagaimana cara membuat dan menjalankan project baru dengan Laravel dan pada kesempatan kali ini kita semua akan belajar bagaimana cara membuat Model dan Migration di dalam Laravel.

Langkah 1 - Konfigurasi Database di Laravel

Sebelum kita membuat Model dan Migration, maka kita perlu mengatur koneksi database di dalam Laravel. Dan enak-nya, di dalam Laravel untuk melakukan hal tersebut sangatlah mudah, kita cukup mengubah konfig yang ada di dalam file .env.

Jadi, sekarang silahkan teman-teman buka project Laravel-nya melalui text editor, seperti VsCode, kemudian buka file .env dan cari kode berikut ini.

.env

DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=

Sejak Laravel 11 rilis, untuk default koneksi database-nya akan menggunakan sqlite. Dan disini kita akan mengubahnya menggunakan mysql.

Silahkan ubah kode di atas, menjadi seperti berikut ini.

.env

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

Di atas, untuk DB_CONNECTION kita ubah menjadi mysql dan untuk DB_DATABASE adalah nama dari database yang akan kita gunakan, yaitu db_laravel_xendit.

Sedangkan untuk DB_USERNAME dan DB_PASSWORD disesuaikan dengan konfigurasi MysQL masing-masing. Jika menggunakan XAMPP, maka password-nya dikosongkan saja.

Langkah 2 - Membuat Model dan Migration

Setelah berhasil mengatur koneksi database di dalam Laravel, maka kita akan lanjutkan membuat Modeld an Migration-nya.

Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan sudah berada di dalam project Laravel-nya.

php artisan make:model Donation -m

Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan 2 file baru yang berada di dalam folder :

  1. app/Models/Donation.php
  2. database/migrations/2024_03_07_024630_create_donations_table.php

Langkah 3 - Menambahkan Field di Migration

Sekarang kita akan menambahkan field / kolom di dalam file Migration, jadi silahkan teman-teman buka file-nya di database/migrations/2024_03_07_024630_create_donations_table.php, kemudian pada function ubah kode-nya menjadi seperti berikut ini.

database/migrations/2024_03_07_024630_create_donations_table.php

public function up(): void
{
    Schema::create('donations', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email');
        $table->bigInteger('amount');
        $table->text('note');
        $table->string('status')->default('PENDING');
        $table->string('external_id')->nullable();
        $table->string('invoice_url')->nullable();
        $table->timestamps();
    });
}

Dari perubahan kode di atas, kita menambahkan 7 field / kolom, yaitu:

FIELD / KOLOM TYPE DATA
name string
email string
amount bigInteger
note text
status string
external_id string
invoice_url string

Langkah 4 - Menambahkan Mass Assignment

Agar field / kolom yang sudah kita tambahkan di atas dapat menyimpan data di dalam table, maka kita perlu menambahkan Mass Assignment di dalam Model.

Jadi silahkan teman-teman buka file app/Models/Donation.php, kemudian ubah kode-nya menjadi seperti berikut ini.

app/Models/Donation.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Donation extends Model
{
    use HasFactory;
    
    /**
     * fillable
     *
     * @var array
     */
    protected $fillable = [
        'name',
        'email',
        'amount',
        'note',
        'status',
        'external_id',
        'invoice_url',
    ];
}

Di atas, kita menambahkan properti $fillable, yang mana digunakan agar field dapat melakukan insert data ke dalam table.

Langkah 5 - Menjalankan Proses Migrate

Setelah berhasil menambahkan field dan Mass Assignment, maka kita akan belajar menjalankan proses migrate. Proses ini akan menjalankan beberapa proses, diantaranya.

  1. Membuat database ke dalam MySQL.
  2. Membuat table beserta field / kolom.

Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan sudah berada di dalam project Laravel-nya.

php artisan migrate

Jika muncul pertanyaan seperti berikut ini, silahkan pilih Yes dan ENTER.

  WARN  The database 'db_laravel_xendit' does not exist on the 'mysql' connection.  

 ┌ Would you like to create it? ────────────────────────────────┐
 │ ● Yes / ○ No                                                 │
 └──────────────────────────────────────────────────────────────┘

Jika berhasil, maka akan terbuat database baru di dalam MySQL dengan nama db_laravel_xendit dan di dalamnya akan terdapat beberapa table, termasuk table donations yang sudah kita buat sebelumnya di dalam migration.

Kesimpulan

Pada artikel ini kita telah belajar banyak hal, yaitu mengatur koneksi database di Laravel, membuat Model dan Migration, menambahkan field dan Mass Assignment dan yang terakhir adalah menjalankan proses migrate.

Pada artikel berikutnya, kita semua akan belajar bagaimana cara membuat layout dari aplikasi yang akan kita gunakan.

Terima Kasih



Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami