Halo teman-teman semuanya, di artikel sebelumnya kita telah berhasil belajar bagaimana cara melakukan proses installasi dan menjalankan projecr baru di Laravel 9. Sekarang, kita akan lanjutkan belajar bagaimana cara membuat migration di Laravel 9.
Migration
adalah sebuah version control database, dimana akan membantu team untuk mengubah dan membagikan sebuah schema database dari aplikasi yang dibangun. Jika sebelumnya teman-teman biasanya membuat table-table secara manual di dalam database, maka dengan migration hal itu sudah tidak perlu dilakukan lagi.
Langkah 1 - Konfigurasi Koneksi Database
Karena akan bekerja menggunakan database, maka kita perlu melakukan konfigurasi koneksi database-nya terlebih dahulu. Silahkan buka project kita menggunakan Text Editor, kemudian cari file yang bernama .env
.
Jika sudah ketemu, silahkan cari kode berikut ini di dalam file .env
.
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
Dan ubahlah menjadi seperti berikut ini :
DB_DATABASE=db_laravel_9
DB_USERNAME=root
DB_PASSWORD=
Di atas, kita atur untuk DB_DATABASE
atau nama database yang akan kita gunakan menjadi db_laravel_9
. Kemudian untuk DB_USERNAME
kita biarkan default, yaitu root
dan untuk DB_PASSWORD
silahkan disesuaikan dengan konfigurasi-nya massing-masing. Jika menggunakan XAMPP, maka untuk password-nya dikosongkan saja (by default kosong).
INFORMASI : silahkan restart server Laravel-nya setelah melakukan perubahan di dalam file .env
.
Langkah 2 - Membuat Database
Setelah kita berhasil melakukan konfigurasi koneksi database, sekarang kita lanjutkan untuk membuat database-nya. Silahkan buka http://localhost/phpmyadmin. Kemudian silahkan buat database baru dengan nama db_laravel_9
. Kurang lebih seperti berikut ini :
Langkah 3 - Membuat Model dan Migration
Sekarang, kita lanjutkan belajar bagaimana cara membuat model dan migration di Laravel 9. Silahkan jalankan perintah berikut ini di dalam terminal/CMD dan pastikan berada di dalam project Laravel-nya.
php artisan make:model Post -m
Perintah di atas, digunakan untuk membuat model baru dengan nama Post
dan kita tambahkan flag -m
, yang artinya file migration-nya juga akan ikut dibuat.
Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan 2 file baru, yaitu :
-
app/Models/Post.php
-
database/migrations/2022_02_09_003543_create_posts_table.php
INFORMASI : untuk nama file migration akan random sesuai tanggal pembuatannya.
Langkah 4 - Menambahkan Field Table
Setelah berhasil membuat model dan migration, sekarang kita lanjutkan untuk menambahkan field atau kolom di dalam file migration. Field yang kita tambahkan ini akan digenerate di dalam table posts
yang ada di database.
Silahkan buka file database/migrations/2022_02_09_003543_create_posts_table.php
, kemudian pada bagian function up
, ubah kode-nya menjadi seperti berikut ini :
public function up()
{
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 |
TYPE DATA |
image |
string |
title |
string |
content |
text |
Langkah 5 - Menjalankan Migration
Sekarang kita akan belajar menjalankan perintah migrate. Perintah ini akan digunakan untuk melakukan proses create table posts
beserta field yang ada di dalamnya ke dalam database.
Silahkan jalankan perintah berikut ini di dalam terminal/CMD :
php artisan migrate
Jika perintah di atas berhasil dijalankan, maka akan mendapatkan output seperti berikut ini :
Dan jika kita cek di dalam database, maka table-table beserta field-nya juga otomatis ter-generate.
Langkah 6 - Konfigurasi Mass Assigment
Mass Assigment di Laravel memungkinkan kita untuk mengizinkan sebuah field dari table agar dapat menyimpan sebuah data. Karena table yang kita gunakan nantinya buat menyimpan data, maka kita perlu melakukan konfigurasi Mass Assigment-nya terlebih dahulu.
Silahkan 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',
];
}
Di atas, kita menambahkan properti baru yang bernama $fillable
. Properti tersebut yang dinamakan Mass Assigment di Laravel. Diman di dalamnya kita menambahkan field-field yang diizinkan untuk melakukan manipulasi data.
Sampai disini pembahasan bagaimana cara membuat model dan migration di Laravel 9. Di artikel selanjutnya kita semua akan belajar bagaimana cara menampilkan data dari database di Laravel 9.
Terima Kasih