- Apa Itu Model dan Migration?
- Langkah 1 - Konfigurasi Database
- Langkah 2 - Membuat Model dan Migration
- Langkah 3 - Menambahkan Kolom di Migration
- Langkah 4 - Menambahkan Mass Assignment
- Langkah 5 - Menjalankan Proses Migrate
- Kesimpulan
Halo teman-teman semuanya. Pada artikel sebelumnya, kita telah berhasil menginstall dan menjalankan Laravel sebagai pondasi awal untuk membangun aplikasi menggunakan Laravel Livewire 4.
Pada artikel kali ini, kita akan melanjutkan ke tahap berikutnya, yaitu membuat Model dan Migration. Tahapan ini sangat penting, karena seluruh data yang nanti akan ditampilkan, ditambahkan, diubah, dan dihapus melalui Livewire, semuanya akan bergantung pada struktur database yang kita buat di sini.
Apa Itu Model dan Migration?
Di dalam Laravel, Model digunakan sebagai representasi dari sebuah tabel di database. Dengan model, kita dapat berinteraksi dengan data menggunakan sintaks PHP yang rapi dan mudah dibaca.
Sedangkan Migration adalah fitur Laravel yang digunakan untuk mengatur struktur tabel database menggunakan kode. Dengan migration, kita bisa membuat, mengubah, atau menghapus kolom tabel secara terkontrol dan terstruktur, tanpa harus menulis query SQL secara manual.
Langkah 1 - Konfigurasi Database
Sebelum membuat model dan migration, pastikan koneksi database sudah dikonfigurasi dengan benar. Silakan buka project Laravel teman-teman menggunakan text editor, lalu buka file .env. Cari bagian kode berikut:
.env
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
Lalu ubah sesuai dengan nama database yang akan digunakan, misalnya:
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_livewire4
DB_USERNAME=root
DB_PASSWORD=
Di atas, kita membuat konfigurasi koneksi MySQL agar Laravel tahu database mana yang akan dipakai. Jika teman-teman pakai MySQL, pastikan database db_livewire4 sudah ada atau nantinya akan dibuat secara otomatis saat proses migrate.
Langkah 2 - Membuat Model dan Migration
Sekarang kita akan buat sebuah model dan migration sekaligus melalui perintah Artisan. Jalankan perintah berikut di terminal/CMD:
php artisan make:model Post -m
Perintah di atas akan membuat dua file sekaligus:
app/Models/Post.php— sebagai model data.database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php— sebagai file migration untuk tabel posts.
Langkah 3 - Menambahkan Kolom di Migration
Silahkan buka file migration yang ada di folder database/migrations/ (nama filenya akan berbeda sesuai timestamp), lalu pada bagian up() ubah menjadi seperti ini:
database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php
public function up(): void
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('image')->nullable();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
Di atas kita menambahkan 3 kolom penting untuk tabel posts, yakni:
imagetitlecontent
Langkah 4 - Menambahkan Mass Assignment
Silahkan teman-teman buka file model yang baru dibuat: app/Models/Post.php, lalu tambahkan property $fillable seperti berikut:
app/Models/Post.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
/**
* fillable
*
* @var array
*/
protected $fillable = [
'image',
'title',
'content',
];
}
Properti $fillable digunakan agar field-field di dalam tabel tersebut boleh diisi secara massal (misalnya saat kita memasukkan data dari form).
Langkah 5 - Menjalankan Proses Migrate
Setelah berhasil menambahkan field atau kolom di dalam file Migration dan menambahkan Mass Assigment di dalam Model, maka kita akan lanjutkan belajar menjalankan proses migrate.
Dengan menjalankan proses migrate, maka field/kolom yang sudah kita definisikan di dalam file migration akan digenerate ke dalam database.
Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan berada di dalam project Laravel-nya.
php artisan migrate
Jika keluar output seperti berikut ini. Itu artinya kita belum memiliki database di dalam MySQL dengan nama db_livewire4 dan apakah kita ingin membuatnya ? Silahkan pilih Yes dan ENTER.
WARN The database 'db_livewire4' does not exist on the 'mysql' connection.
┌ Would you like to create it? ────────────────────────────────┐
│ ● Yes / ○ No │
└──────────────────────────────────────────────────────────────┘
Jika berhasil, maka database db_livewire4 akan dibuat dan tabel posts akan otomatis dibuat juga sesuai struktur yang kita definisikan sebelumnya.

Kesimpulan
Pada artikel ini, kita telah mempelajari bagaimana cara mengkonfigurasi database, membuat Model dan Migration, serta menentukan struktur tabel yang terdiri dari field image, title, dan content.
Pada artikel selanjutnya, kita akan mulai masuk ke inti pembahasan dengan installasi dan konfigurasi Laravel Livewire 4 di dalam project Laravel yang sudah kita siapkan.
Terima kasih
{ setTimeout(() => { showShimmer = false; }, 300); })"
:class="{'opacity-0': !loaded, 'opacity-100': loaded}"
class="lazy w-full h-auto rounded-xl border border-white dark:border-neutral-700/80 transition-opacity duration-500"
loading="lazy"
/>
SAWERIA
Memuat komentar...