Search This Blog

Home » » mengintegrasikan form dan tabel dengan Database MySQL menggunakan Migration dan Model di Laravel.

mengintegrasikan form dan tabel dengan Database MySQL menggunakan Migration dan Model di Laravel.

Buka:

http://localhost/phpmyadmin/ 


Pastikan aplikasi MySQL (seperti XAMPP / Laragon) sudah berjalan dan Anda telah membuat database kosong bernama db_mahasiswa di phpMyAdmin.


Langkah 1: Konfigurasi Database di File .env

Buka file .env di direktori utama proyek Anda, lalu sesuaikan bagian konfigurasi database (misalnya jika menggunakan XAMPP/Laragon):

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=db_mahasiswa

DB_USERNAME=root

DB_PASSWORD=


Langkah 2: Buat Model dan Migration

Jalankan perintah berikut di terminal Git Bash untuk membuat file Model Mahasiswa sekaligus file Migration-nya:

php artisan make:model Mahasiswa -m 


Langkah 3: Edit File Migration

Buka file migration yang baru saja terbuat di folder database/migrations/YYYY_MM_DD_HHMMSS_create_mahasiswas_table.php, lalu tambahkan kolom tabel berikut:

public function up(): void

{

    Schema::create('mahasiswas', function (Blueprint $table) {

        $table->id();

        $table->string('nim')->unique();

        $table->string('nama');

        $table->string('kelas');

        $table->timestamps();

    });

}


Setelah itu, jalankan migrasi database di terminal:

php artisan migrate

Langkah 4: Konfigurasi Model Mahasiswa.php

Buka file app/Models/Mahasiswa.php dan tambahkan properti $fillable agar data kolom dapat diisi secara masal (mass assignment):

Berikut adalah langkah-langkah lengkap untuk membuat dan mengonfigurasi file model Mahasiswa.php di Laravel:

Langkah 5: Buat Model Menggunakan Artisan

Buka terminal Git Bash di VS Code, lalu jalankan perintah berikut:



Langkah 6: Kode Lengkap Konfigurasi Mahasiswa.php

Buka file Mahasiswa.php dan sesuaikan kodenya seperti berikut:

<?php


namespace App\Models;


use Illuminate\Database\Eloquent\Factories\HasFactory;

use Illuminate\Database\Eloquent\Model;


class Mahasiswa extends Model

{

    use HasFactory;


    // 1. Menentukan nama tabel di database (Opsional jika sesuai konvensi jamak/plural)

    protected $table = 'mahasiswas';


    // 2. Menentukan Primary Key tabel (Opsional, default: 'id')

    protected $primaryKey = 'id';


    // 3. Menentukan kolom yang boleh diisi secara massal (Mass Assignment)

    protected $fillable = [

        'nim',

        'nama',

        'kelas',

    ];


    // 4. Pengaturan Timestamps (created_at & updated_at)

    public $timestamps = true;

}

Penjelasan Properti Konfigurasi Model

  1. protected $table

    • Secara bawaan (default), Laravel akan menganggap nama tabel di database menggunakan bentuk jamak dalam bahasa Inggris (misal model Mahasiswa -> tabel mahasiswas).

    • Jika nama tabel di MySQL Anda berbeda (misalnya tbl_mahasiswa), Anda wajib mendefinisikannya:

      PHP
      protected $table = 'tbl_mahasiswa';
      
  2. protected $primaryKey

    • Default primary key di Laravel adalah id. Jika tabel Anda menggunakan nama kolom primary key lain (misal nim), definisikan seperti ini:

      PHP
      protected $primaryKey = 'nim';
      
  3. protected $fillable

    • Properti ini digunakan untuk keamanan (Mass Assignment Protection). Kolom yang dicantumkan di dalam array inilah yang diizinkan untuk diisi menggunakan perintah Mahasiswa::create($request->all()).

  4. protected $guarded (Alternatif dari $fillable)

    • Berfungsi sebagai kebalikan dari $fillable. Kolom yang dimasukkan di sini tidak boleh diisi secara massal. Jika ingin mengizinkan semua kolom diisi tanpa batasan:

      PHP
      protected $guarded = [];
      
  5. public $timestamps

    • Default bernilai true. Jika tabel di MySQL Anda tidak memiliki kolom created_at dan updated_at, ubah menjadi false agar tidak terjadi error saat melakukan simpan data:

      PHP
      public $timestamps = false;

https://gemini.google.com/u/2/app/e6255afb79cd7c74?pageId=none

Jika Anda menyukai Artikel di blog ini, Silahkan klik disini untuk berlangganan gratis via email, dengan begitu Anda akan mendapat kiriman artikel setiap ada artikel yang terbit di Creating Website
Comments
0 Comments

0 komentar:

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2012. Bahan Ajar - All Rights Reserved
Template Modify by Agung Baitul H (0898-1983-200)
Proudly powered by Blogger E-Mail agung.abl@bsi.ac.id