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_api
yang 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