Tutorial Laravel 10 #3 : Membuat Model dan Migration


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com
Tutorial Laravel 10 #3 : Membuat Model dan Migration

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

Model merupakan salah satu arsitektur / pola yang digunakan untuk membangun sebuah aplikasi, yaitu MVC atau Model, View dan Controller. Model biasanya berisi kode-kode yang berhubungan dengan database.

Sedangkan Migration merupakan version control dari database, dengan Migration kita bisa membuat schema table dan field dengan lebih mudah dibandingkan harus membuatnya secara manual di database.

Langkah 1 - Konfigurasi Koneksi Database

Hal pertama yang akan kita lakukan adalah mengatur koneksi dari aplikasi (Laravel) ke dalam database. Di Laravel kita sudah disesiakan sebuah file konfigurasi untuk mempermudah developer atau pengembang, nama file tersebut bernama .env.

Jadi, silahkan teman-teman buka project Laravel-nya menggunakan Text Editor, kemudian buka file .env dan cari kode berikut ini.

DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

Kemudian silahkan ubah, menjadi seperti berikut ini.

DB_DATABASE=db_laravel_10
DB_USERNAME=root
DB_PASSWORD=

Pada perubahan kode di atas, kita mengubah DB_DATABASE menggunakan db_laravel_10 dan untuk DB_PASSWORD silahkan disesuaikan dengan konfigurasi dari MySQL-nya masing-masing, jika menggunakan XAMPP, maka dikosongkan saja (default).

Langkah 2 - Membuat Database di MySQL

Karena sudah berhasil melakukan konfigurasi di dalam Laravel, berarti kita lanjutkan membuat database-nya di dalam MySQL.

Jika teman-teman menggunakan XAMPP, maka kita bisa memanfaatkan DBMS (database management system) seperti PhpMyAdmin untuk mempermudah kita dalam pembuatan database.

Silahkan teman-teman buka http://localhost/phpmyadmin, kemudian silahkan buat database baru dengan nama db_laravel_10, kurang lebih seperti berikut ini.

Langkah 3 - Membuat Model dan Migration

Setelah Laravel dan database MySQL terhubung, 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, digunakan untuk membuat sebuah Model baru dengan nama Post dan jika teman-teman perhatikan, di atas kita menambahkan flag -m yang artinya kita akan membuat file Migration-nya sekaligus.

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

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

INFORMASI : nama file Migration akan random sesuai dengan tanggal dibuat-nya.

Langkah 4 - Menambahkan Field di dalam Migration

Hal apa yang perlu kita lankukan setelah membuat Model dan Migration di Laravel ? jawaban-nya adalah menambahkan field atau kolom yang nanti ada di dalam table dan kita akan menambahkannya di dalam file Migration di atas.

Silahkan teman-teman buka file migration-nya yang berada di dalam folder database/migrations/2023_02_14_232119_create_posts_table.php, kemudian pada function up, ubah kode-nya menjadi seperti berikut ini.

database/migrations/2023_02_14_232119_create_posts_table.php

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 / COLUMN TYPE DATA
image string
title string
content text

Langkah 5 - Konfigurasi Mass Assignment

Field atau column yang sudah kita tambahkan di dalam migration tidak akan pernah bisa menyimpan data ke dalam database sebelum kita melakukan konfigurasi Mass Assignment di dalam Model.

Mass Assignment sendiri merupakan sebuah properti yang ada di dalam Model dan digunakan untuk mengizinkan field-field melakukan manipulasi data ke dalam database, seperti insert, update, delete dan lain sebagainya.

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

app/Models/Post.php

<?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 kita berikan value dari field-field yang kita buat sebelumnya di dalam Migration.

Langkah 6 - Menjalankan Migration

Agar field-field yang ada di dalam Migration digenerate ke dalam database, maka kita perlu menjalankan perintah migrate dari Laravel.

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

php artisan migrate

Jika perintah di atas berhasil dijalankan, maka kurang lebih hasilnya akan seperti berikut ini.

Dan jika teman-teman cek pada PhpMyAdmin, maka table-table akan berhasil digenerate berserta field-field di dalamnya.

Mungkin sampai disini pembahasan bagaimana cara membuat Model dan Migration di dalam Laravel, jika teman-teman ada kendala silahkan bisa bertanya melalui kolom komentar dibawah, atau juga bisa melalui group Telegram dari SantriKoding.

Pada artikel selanjutnya, kita semua akan belajar bagaimana cara menampilkan data dari database ke dalam Laravel dan untuk tampilannya kita akan menggunakan Bootstrap.

Terima Kaish.



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


ARTIKEL TERKAIT