Untuk mendefinisikan model untuk artikel blog dalam aplikasi Laravel, kamu perlu mengikuti beberapa langkah sederhana. Model dalam Laravel menggunakan Eloquent ORM untuk berinteraksi dengan database. Berikut adalah langkah-langkah untuk mendefinisikan model untuk artikel blog:

1. Buat Model dan Migration

Gunakan artisan command untuk membuat model dan migration secara bersamaan:


php artisan make:model Article -m

Ini akan menghasilkan dua file:

  1. Model di app/Models/Article.php
  2. Migration di database/migrations/xxxx_xx_xx_create_articles_table.php

2. Definisikan Struktur Tabel di Migration

Edit file migration yang baru dibuat (create_articles_table.php) untuk menentukan struktur tabel articles:


use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateArticlesTable extends Migration
{
//Jalankan Migrasi
public function up()
{
	Schema::create('articles', function (Blueprint $table) {
		$table->id();
		$table->string('title');
		$table->text('content');
		$table->timestamps();
	});
}

//Ulangi Migrasi
public function down()
{
	Schema::dropIfExists('articles');
}
}

3. Jalankan Migration

Untuk membuat tabel di database, jalankan perintah berikut:

php artisan migrate

4. Definisikan Model

Edit file model `Article.php` untuk mengatur properti yang diperlukan:


namespace App\Models;

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

class Article extends Model
{
	use HasFactory;

	// Properti yang dapat diisi melalui mass assignment
	protected $fillable = ['title', 'content'];
}

5. Membuat Factory (Opsional)

Untuk mempermudah pembuatan data dummy, kamu bisa membuat factory:

php artisan make:factory ArticleFactory --model=Article

Lalu, edit file database/factories/ArticleFactory.php:


namespace Database\Factories;

use App\Models\Article;
use Illuminate\Database\Eloquent\Factories\Factory;

class ArticleFactory extends Factory
{
	protected $model = Article::class;

	public function definition()
	{
		return [
			'title' => $this->faker->sentence,
			'content' => $this->faker->paragraph,
		];
	}
}

6. Penggunaan Model

Sekarang kamu bisa mulai menggunakan model Article untuk berinteraksi dengan tabel articles. Contoh penggunaan di controller:


namespace App\Http\Controllers;

use App\Models\Article;
use Illuminate\Http\Request;

class ArticleController extends Controller
{
	public function index()
	{
		$articles = Article::all();
		return view('articles.index', compact('articles'));
	}

	public function store(Request $request)
	{
		$request->validate([
		'title' => 'required|string|max:255',
		'content' => 'required|string',
		]);
	
		Article::create($request->all());
	
		return redirect()->route('articles.index')
		->with('success', 'Article created successfully.');
	}
}

Kesimpulan

Kamu telah mendefinisikan model untuk artikel blog di Laravel dengan mengikuti langkah-langkah:

  1. Membuat model dan migration.
  2. Mendefinisikan struktur tabel di migration.
  3. Menjalankan migration untuk membuat tabel.
  4. Mengatur properti model.
  5. Membuat factory (opsional) untuk data dummy.
  6. Menggunakan model untuk CRUD di controller.

Dengan ini, kamu sudah siap untuk mengembangkan fitur-fitur blog lainnya seperti tampilan, pengeditan, dan penghapusan artikel.