Tutorial Laravel 11 #3 : Membuat Model dan Migration


Tutorial Laravel 11 #3 : Membuat Model dan Migration

Halo teman-teman semuanya, pada artikel sebelumnya kita telah belajar banyak hal, seperti installasi Laravel 11, menjalankan Laravel 11 dan membuat storage link.

Pada artikel kali ini, kita semua akan belajar bagaimana cara membuat Model dan Migration di dalam Laravel 11.

Langkah 1 - Konfigurasi Koneksi Database

Pertama-tama, mari kita konfigurasi koneksi antara MySQL dengan Laravel 11, caranya juga cukup mudah, kita tinggal mengkonfigurasinya di dalam file .env.

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

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

kemudian ubah menjadi seperti berikut ini.

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

Di atas, pertama kita ubah konfigurasi DB_CONNECTION yang semula menggunakan sqlite menjadi mysql.

Kemudian kita hapus semua tanda # pada konfigurasi key, tujuaanya agar variable-nya diaktifkan. Kemudian untuk DB_DATABASE kita atur menggunakan db_laravel_11.

Untuk DB_USERNAME secara default adalah root dan untuk DB_PASSWORD jika teman-teman menggunakan XAMPP, maka dikosongkan saja.

Langkah 2 - Membuat Model dan Migration

Kita lanjutkan untuk membuat Model dan Migration di dalam Laravel 11, silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan sudah berada di dalam project Laravel-nya.

php artisan make:model Product -m

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

  1. app/Models/Product.php
  2. database/migrations/2024_01_31_080603_create_products_table.php

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

Langkah 3 - Menambahkan Field / Kolom di dalam Migraion

Setelah file Migration berhasil dibuat, maka kita akan menambahkan field/kolom di dalamnya. Silahkan teman-teman buka file migration-nya, kemudian pada function up ubah kode-nya menjadi seperti berikut ini.

database/migrations/2024_01_31_080603_create_products_table.php

public function up(): void
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('image');
        $table->string('title');
        $table->text('description');
        $table->bigInteger('price');
        $table->integer('stock')->default(0);
        $table->timestamps();
    });
}

Dari perubahan kode di atas, kita menambahkan 5 field, yaitu :

FIELD / KOLOM TIPE DATA OPTION
image string -
title string -
description text -
price bigInteger -
stock integer nilai default 0

Langkah 4 - Menambahkan Mass Assignment

Mass Assignment merupakan sebuah properti array yang berisi field-field yang ada di dalam table / migration. Mass Assignment digunakan agar field yang sudah kita tambahkan di dalam migration dapat melakukan manipulasi ke dalam database.

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

app/Models/Product.php

<?php

namespace App\Models;

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

class Product extends Model
{
    use HasFactory;

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

Di atas, kita menambahkan properti $fillable dengan jenis array dan di dalamnya terdapat field/kolom yang sudah kita buat sebelumnya di dalam file migration.

Langkah 5 - Menjalankan Proses Migrate

Sekarang kita akan belajar bagaimana menjalankan proses migrate di dalam Laravel, proses ini akan men-generate database dan table beserta field/kolom di dalamnya.

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

php artisan migrate

Jika keluar pertanyaan seperti berikut ini. Itu artinya kita belum memiliki database di dalam MySQL dengan nama db_laravel11 dan apakah kita ingin membuatnya ? Silahkan pilih Yes dan ENTER.

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

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

Dan jika teman-teman cek pada PhpMyAdmin di http://localhost/phpmyadmin, maka table-table akan berhasil digenerate berserta field-field di dalamnya.

Kesimpulan

Sampai disini pembahasan kita terkait bagaimana cara membuat Model dan Migration di dalam Laravel 11 dan kita juga belajar menambahkan field dan mass assignment beserta menjalankan proses migrate.

Pada artikel berikutnya, kita semua akan belajar bagaimana cara menampilkan data dari database di dalam Laravel 11.

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