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.

Copy to Clipboard

Pada folder app akan dihasilkan sebuah file Post.php yang berisi model Post. Isinya begitu sederhana, karena extends dari Model.

Model yang dihasilkan dari perintah Artisan

Model yang dihasilkan dari perintah Artisan

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:

Copy to Clipboard

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

File Migration yang dihasilkan

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
Contoh tampilan file Migration

Contoh tampilan file Migration

Tambahkan beberapa baris berikut untuk menambah field pada database sebelum Migrations dijalankan:

Copy to Clipboard

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.

File .env yang berisi database connection credentials

File .env yang berisi database connection credentials

Pastikan juga untuk memastikan database server sedang berjalan database telah di create sebelum menjalankan Migrations. Jalankan migrations dengan perintah:

Copy to Clipboard

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:

Migrations Error karena permasalahan database

Migrations Error karena permasalahan database

Buka file: /app/Providers/AppServiceProvider.php dan tambahkan baris berikut di definisi:

Copy to Clipboard

Tambahkan baris berikut di function boot():

Copy to Clipboard
/app/Providers/AppServiceProvider.php yang telah dimodifikasi

/app/Providers/AppServiceProvider.php yang telah dimodifikasi

Setelah memperbaiki file tersebut, silahkan jalankan kembali migrations dengan perintah:

Copy to Clipboard
Tampilan apabila migrations berhasil

Tampilan apabila migrations berhasil

Hasil dari proses migrations dapat diperiksa melalui aplikasi phpMyAdmin, pada contoh ini akan tampil sebagai berikut:

Tampilan phpMyAdmin setelah menjalankan migrations

Tampilan phpMyAdmin setelah menjalankan migrations

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:
Copy to Clipboard
Shell Tinker yang siap diberi perintah Laravel

Shell Tinker yang siap diberi perintah Laravel

  • Berikut adalah contoh menjalankan perintah Eloquent pada Tinker Shell
Copy to Clipboard

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:
Copy to Clipboard
  • Silahkan chek data di phpMyAdmin untuk memastikan hasilnya:
Tampilan Data yang telah ditambahkan melalui Tinker

Tampilan Data yang telah ditambahkan melalui Tinker

Latihan

Silahkan membuat model lain yang dibutuhkan pada project, kemudian isi masing-masing dengan 10 record/data dengan memanfaatkan Tinker.

Written by: SEW 20191014