MEMBUAT MODEL DAN MIGRATION
1 - Membuat Model dan Migration
Silahkan jalankan perintah berikut 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/2023_04_05_015807_create_posts_table.php
untuk nama file migration akan random sesuai tanggal pembuatannya.
Langkah 2 - Menambahkan Field Table
Setelah berhasil membuat model dan migration, sekarang kita lanjutkan untuk menambahkan field 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_11_16_015807_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 3 - 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.