Laravel Model merupakan salah satu bagian dimana seluruh data ditentukan definisinya. Artikel ini akan membahas mengenai apa itu Model, bagaimana membuat dan memanfaatkannya.
Apa itu Laravel Model?
Model merupakan salah satu dari bagian MVC yang akan berkomunikasi dengan database. Model yang sudah terhubung ke database akan digunakan/dipanggil via Controller sebagaimana konsep MVC itu berjalan.
Migration merupakan salah satu fitur Laravel yang berfungsi seperti version control untuk database. Melalui fitur ini sebuah team pengembangan web development akan dapat bekerja dalam team untuk mengelola dan modifikasi skema basis data aplikasi. Migration biasanya dipasangkan dengan Schema Builder dari Laravel untuk dengan mudah membangun skema basis data aplikasi Anda. Facade Skema Laravel menyediakan dukungan untuk membuat dan memanipulasi tabel di semua sistem basis data yang didukung Laravel.
Membuat dan Memanfaatkan Laravel Model
Dalam contoh kasus berikut, akan dibuat halaman web untuk menampilkan data dari database. Kasus ini melanjutkan project Portfolio yang sebelumnya telah dibuat, dengan menampilan halaman baru yang diberi nama Blog.
Membuat Database di MySQL/MariaDB
Silahkan membuat sebuah database dengan menggunakan PHPMyAdmin. Beri nama database tersebut dengan nama yang diinginkan. Pada contoh selanjutnya database diberi nama “Portfolio”. Jangan lupa untuk mendapatkan username dan password yang akan dipergunakan untuk mengakses Database. Pada umumnya default username untuk instalasi database adalah menggunakan username root dan tanpa password. Hindari praktek seperti ini pada versi production dari web yang dikembangkan.
Membuat Model dengan Artisan
Berikut adalah perintah untuk membuat Model. Bagian akhir perintah diberi kode migration –m dengan tujuan nantinya akan dihasilkan sebuah table dalam database.
Pada folder app akan dihasilkan sebuah file Post.php yang berisi model Post. Isinya begitu sederhana, karena extends dari Model.
Struktur Migrations
Class class terdiri dari 2 methods: up dan down. Method up dipergunakan untuk menambahkan tabel, columns, atau index pada database. Sebaliknya down dipergunakan untuk mengembalikan status pada posisi sebelum method up dijalankan.
Contoh sebuah migrations untuk tabel flights:
Migration
Perintah artisan make:model dengan option –m juga akan menghasilkan file /database/migrations/yyy_mm_dd_063343_create_posts_table.php. Di folder tersebut telah terdapat 2 file lain yang dihasilkan secara default berfungsi untuk fitur
user authentication dan reset password.
File migration yang dihasilkan dapat dijalankan kemudian setelah definisi table database yang akan dibuat disempurnakan. Database akan dibuat berdasarkan konfigurasi di function up(), sedangkan function down() akan dijalankan untuk menghapus table. Perintah untuk berbagai tipe data dapat diakses pada dokumentasi Laravel di link berikut: https://laravel.com/docs/5.7/migrations#creating-columns
Secara default, telah dihasilkan 3 field:
- id dengan tipe UNSIGNED INTEGER (primary key)
- timestamps dengan tipe timestamp menghasilkan filed created_at dan updated_at
Tambahkan beberapa baris berikut untuk menambah field pada database sebelum Migrations dijalankan:
Migrate
Sebelum menjalankan Migrations, pastikan semua credential dari Database telah benar. Silahkan mengubah nama database, username, dan password pada file .env yang terletak di root folder.
Pastikan juga untuk memastikan database server sedang berjalan database telah di create sebelum menjalankan Migrations. Jalankan migrations dengan perintah:
Migrations akan mendapati mana saja file migrations yang belum dijalankan berdasarkan data yang tersimpan di database. Untuk file migrations yang telah dijalankan tidak akan dijalankan kembali.
Migrations Error
Apabila menggunakan DB versi lama, maka akan terjadi migrations error seperti terlihat di screenshot slide berikut:
Buka file: /app/Providers/AppServiceProvider.php dan tambahkan baris berikut di definisi:
Tambahkan baris berikut di function boot():
Setelah memperbaiki file tersebut, silahkan jalankan kembali migrations dengan perintah:
Hasil dari proses migrations dapat diperiksa melalui aplikasi phpMyAdmin, pada contoh ini akan tampil sebagai berikut:
Mengisi Data Dummy dengan Tinker
- Bukan phpMyAdmin dan tambahkan beberapa data
- Alternatifnya dengan menggunakan fitur Tinker yang disediakan oleh Laravel
- Tinker merupakan salah satu fitur yang disediakan untuk berinteraksi dengan sistem Laravel, salah satunya dengan database melalui Eloquent ORM
- Mengakses Tinker melalui Terminal/Command Prompt:
- Berikut adalah contoh menjalankan perintah Eloquent pada Tinker Shell
Perintah tersebut di atas menjalankan method count pada model Post (terdapat di class Model). Hasilnya adalah ) karena masih belum ada data pada table.
- Contoh perintah untuk menambah data dengan Tinker:
- Silahkan chek data di phpMyAdmin untuk memastikan hasilnya:
Latihan
Silahkan membuat model lain yang dibutuhkan pada project, kemudian isi masing-masing dengan 10 record/data dengan memanfaatkan Tinker.