Tutorial Resftful API Laravel 10 #3 : Membuat Model & Migration


Tutorial Resftful API Laravel 10 #3 : Membuat Model & Migration

Halo teman-teman semuanya, pada artikel kali ini kita semua akan belajar bagaimana cara membuat Model dan Migration di dalam Laravel.

Di dalam Laravel, untuk membuat sebuah file Model dan Migration kita tidak perlu repot-repot membuatnya secara manual, karena kita bisa memanfaatkan perintah artisan dan file akan otomatis tergenerate.

Tapi sebelum kita praktik langsung, ada baiknya kita mengetahui apa itu Model dan apa itu Migration yang ada di dalam Laravel terlebih dahulu.

Apa itu Model ?

Model merupakan salah satu dari arsitektur yang disebut MVC atau kepanjangannya adalah Model, View dan Controller.

Model merupakan bagian yang digunakan untuk mengatur segala sesuatu yang ada di dalam database. Dan Model ini biasanya akan berpupa method-method yang berinteraksi dengan database dan berisi query-query SQL.

Apa itu Migration ?

Migration merupakan version control dari database, yaitu digunakan untuk mempermudah dalam pembuatan schema database. Dengan Migration kita akan lebih mudah berbagi schema dari database yang dibuat ke semua tim, dibandingkan membuatnya secara manual.

Setelah mengetahui definisi dari Model dan Migration, maka kita akan lanjutkan membuat-nya di dalam Laravel.

Langkah 1 - Konfigurasi Koneksi Database

Sebelum kita lanjutkan membuat Model dan Migration, maka kita perlu melakukan konfigurasi koneksi database di dalam project Laravel-nya. Konfigurasi ini bertujuan untuk menghubungkan aplikasi / project dengan database (MySQL).

Silahkan teman-teman buka file .env, kemudian cari kode berikut ini.

DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

Kemudian ubahlah menjadi seperti berikut ini.

DB_DATABASE=db_laravel10_api
DB_USERNAME=root
DB_PASSWORD=

Dari perubahan kode di atas, kita ubah untuk value dari DB_DATABASE, yaitu dengan db_laravel10_api.

Kemudian untuk DB_USERNAME silahkan teman-teman isi dengan root, karena jika teman-teman menggunakan XAMPP, maka untuk default username dari MySQL-nya adalah root.

Dan untuk DB_PASSWORD silahkan teman-teman kosongkan saja, karena di XAMPP secara default adalah kosong atau teman-teman tidak perlu mengisinya.

Langkah 2 - Membuat Database di MySQL

Setelah koneksi database berhasil diatur di dalam project, maka langkah selanjutnya adalah membuat database-nya itu sendiri di dalam MySQL.

Dan untuk mempermudah dalam pembuatan sebuah database di MySQL, maka kita bisa menggunakan software yang bernama PhpMyAdmin.

Silahkan teman-teman buka link berikut ini di dalam browser http://localhost/phpmyadmin, kemudian buatlah database baru dengan nama db_laravel10_apiyang kurang lebih seperti berikut ini.

Langkah 3 - Membuat Model dan Migration

Setelah berhasil melakukan konfigurasi koneksi database dan membuat database-nya di dalam MySQL, maka kita bisa lanjutkan belajar membuat Model dan Migration di dalam Laravel.

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

php artisan make:model Post -m

Perintah di atas akan membuat sebuah Model baru dengan nama Post.php dan karena kita menambahkan flag -m, maka file Migration juga akan ikut dibuat secara otomatis.

Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan 2 file baru, yaitu :

  • app/Models/Post.php
  • database/migrations/2023_03_03_223135_create_posts_table.php

INFORMASI : untuk nama file Migration akan random sesuai tanggal pembuatannya.

Langkah 4 - Menambahkan Field / Kolom di Migration

Setelah Model dan Migration berhasil dibuat, maka kita akan lanjutkan menambahkan field di dalam file Migration.

Silahkan teman-teman buka file database/migrations/2023_03_03_223135_create_posts_table.php, kemudian pada bagian function up ubahlah menjadi seperti berikut ini.

public function up(): void
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('image');
        $table->string('title');
        $table->text('content');
        $table->timestamps();
    });
}

Dari perubahan kode di atas, kita menambahkan 3 field baru, yaitu :

FIELD / KOLOM TYPE DATA DESCRIPTION
image string untuk menyimpan nama file gambar yang diupload.
title string untuk menyimpan judul post.
content text untuk menyimpan isi post.

Langkah 5 - Menambahkan Mass Assignment di Model

Setelah field berhasil ditambahkan, maka kita perlu menambahkan konfigurasi Mass Assignment di dalam Model.

Mass Assignment digunakan agar field-field yang sudah kita tambahkan di atas dapat melakukan proses manipulasi data ke dalam database, seperti insert, update, delete dan lain-lain.

Silahkan teman-teman buka file app/Models/Post.php, kemudian ubah kode-nya menjadi seperti berikut ini.

<?php

namespace App\Models;

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

class Post extends Model
{
    use HasFactory;

    /**
     * fillable
     *
     * @var array
     */
    protected $fillable = [
        'image',
        'title',
        'content',
    ];
}

Dari perubahan kode di atas, kita menambahkan properti baru dengan nama $fillable dan di dalamnya terdapat field-field yang sebelumnya kita tambahkan di dalam file Migration.

Langkah 6 - Menjalankan Proses Migrate

Agar field-field yang ada di dalam file Migration digenerate menjadi sebuah table dan field di dalam database, maka kita perlu melakukan proses migrate di dalam project Laravel.

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

php artisan migrate

Dan jika kita lihat di dalam database, maka table-table-nya akan otomatis dibuatkan, kurang lebih seperti berikut ini.

Sampai disini pembahasan bagaimana cara membuat Model dan Migration di dalam Laravel. Pada artikel selanjutnya kita semua akan belajar bagaimana cara membuat Accessor di dalam Laravel.

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