Logo
© 2019 - 2026 SantriKoding.

On This Page

Mobile navigation

Tutorial Laravel Filament 5 #5 : Membuat Model dan Migration Post

like emoticon 0
love emoticon 0
insightful emoticon 0
fire emoticon 0
cheer emoticon 0
celebrate emoticon 0
Tutorial Laravel Filament 5 #5 : Membuat Model dan Migration Post

Halo teman-teman semuanya, setelah sebelumnya kita berhasil membuat CRUD Categories menggunakan fitur Resource dari Laravel Filament 5, maka pada kesempatan kali ini kita semua akan belajar membuat Model dan Migration untuk data Post.

Pada tutorial ini, kita juga akan menambahkan relasi antara table categories dan table posts.

Langkah 1 - Membuat Model dan Migration Post

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

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

  1. app/Models/Post.php
  2. database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php

INFORMASI : Nama file migration akan berbeda-beda sesuai dengan waktu pembuatannya.

Langkah 2 - Menambahkan Field di dalam Migration

Setelah file migration berhasil dibuat, selanjutnya kita akan menambahkan beberapa field atau kolom di dalam table posts.

Silahkan teman-teman buka file migration-nya, kemudian pada function up ubah kode-nya menjadi seperti berikut ini.

database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php

public function up(): void
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->foreignId('category_id');
        $table->string('image');
        $table->string('title');
        $table->text('content');
        $table->timestamps();
    });
}

Dari perubahan kode di atas, kita menambahkan beberapa field berikut:

FIELD / KOLOM TIPE DATA OPTION
category_id - foreign key
image string -
title string -
content text -

Kolom category_id nantinya akan digunakan sebagai relasi antara data Post dan Category.

Langkah 3 - Menambahkan Mass Assignment

Agar field-field yang telah kita buat bisa dimanipulasi dan disimpan ke dalam database, kita perlu menambahkan mass assignment.

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

app/Models/Post.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    /**
     * fillable
     *
     * @var array
     */
    protected $fillable = [
        'category_id',
        'image',
        'title',
        'content',
    ];
}

Di atas, kita menambahkan properti $fillable yang berisi field-field yang ada di dalam table posts.

Langkah 4 - Konfigurasi Relationships (Has Many)

Pertama, kita akan membuat relasi many dari Model Category ke Post. Artinya 1 data category bisa memiliki banyak data posts.

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

app/Models/Category.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    /**
     * fillable
     *
     * @var array
     */
    protected $fillable = [
        'name',
        'description',
    ];

    /**
     * posts
     *
     * @return void
     */
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

Dari perubahan kode di atas, kita menambahkan method posts() yang mendefinisikan relasi hasMany ke Model Post.

return $this->hasMany(Post::class);

Langkah 5 - Konfigurasi Relationships (Belongs To)

Setelah membuat relasi many, maka kita lanjutkan membuat relasi belongs to. Artinya memberi tahu bahwa data post ini dimiliki oleh sebuah category.

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

app/Models/Post.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    /**
     * fillable
     *
     * @var array
     */
    protected $fillable = [
        'category_id',
        'image',
        'title',
        'content',
    ];

    /**
     * category
     *
     * @return void
     */
    public function category()
    {
        return $this->belongsTo(Category::class);
    }
}

Dengan penambahan method category(), maka relasi antara Post dan Category sudah lengkap.

return $this->belongsTo(Category::class);

Langkah 6 - Menjalankan Proses Migrate

Terakhir, kita akan belajar menjalankan migrate, agar table beserta field yang sudah kita buat di dalam file migration digenerate di dalam database.

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

php artisan migrate

Kesimpulan

Pada artikel ini, kita semua telah belajar bagaimana membuat Model, Migration dan Relationships di dalam Laravel.

Pada artikel selanjutnya, kita semua akan belajar bagaimana cara membuat CRUD untuk data posts menggunakan Resource yang ada di dalam Laravel Filament 5.

Terima Kasih

Artikel ini dibaca sebanyak 2.035 kali

Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CEO & 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 komentar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

Memuat komentar...