Tutorial Laravel 5.5 - Eloquent Model Conventions

Post a Comment

Tutorial Laravel 5.5 kali ini saya akan membahas mengenai Eloquent Model Conventions. Saya tidak menemukan istilah yang pas mengenai hal ini oleh karena itulah saya tetap menggunakan istilah Eloquent Model Conventions sesuai dengan dokumentasi resmi dari Laravelnya. Pada intinya dalam artikel kali ini akan dijelaskan penggunaan beberapa variabel-variabel penting untuk mengubah fungsi default dari suatu model yang sudah disediakan oleh Laravel itu sendiri. Sebagian variabel sudah dijelaskan pada artikel sebelumnya, namun akan saya jelaskan kembali pada artikel kali ini dengan lebih mendetail dan terfokus.

Baca juga :
Tutorial Laravel 5.5 - Model (Bagian 5)


#Table Names

Nama tabel dalam database yang digunakan secara default adalah nama jamak (plural) dari nama Model atau Class yang anda gunakan pada file model yang anda buat. Penggunaan nama tabel jamak secara otomatis ini menurut saya cukup membingungkan untuk beberapa hal (terutama karena saya tidak memahami bahasa Inggris dengan baik). Jadi misalnya saat anda membuat model dengan nama Flight.php, otomatis anda juga akan memberi nama class Flight di dalam model tersebut. Secara default jika anda tidak mendefinisikan manual tabel mana yang digunakan model ini. maka model Flight ini akan menggunakan nama tabel flights dalam database anda.

Cara otomatis ini tidak pernah saya gunakan dalam pemrograman sehari-hari dikarenakan biasanya saya tidak menggunakan nama jamak dalam membuat nama tabel. Laravel sudah menyediakan cara untuk mendefinisikan nama tabel yang akan kita gunakan dalam model yang kita buat. Caranya adalah dengan menggunakan variabel $table , yaitu dengan menambahkan kode berikut :

protected $table = 'my_flights';

Kode di atas akan membuat model yang kita buat menggunakan tabel my_flights di dalam database. Dengan cara seperti ini, anda dapat memberikan nama class dengan bebas tanpa harus mengikuti aturan jamak secara default.


#Primary Keys

Sama seperti nama tabel yang terlah dijelaskan sebelumnya, Laravel juga sudah mendefinisikan secara default primari keys dari tabel yang kita buat. Secara default Laravel akan menggunakan field dengan nama id dan dengan tipe data INT dan menggunakan auto increment. Berikut ini adalah beberapa variabel yang dapat digunakan untuk mendefinisikan primary keys secara manual :

  • protected $primaryKey = "field_custom"
  • public $incrementing = false
  • protected $keyType = "string"

$primaryKey untuk mendefinisikan primary key yang anda gunakan, $incrementing diisi dengan false agar primary key yang anda gunakan tidak dianggap memakai auto increment dan yang terakhir adalah $keyType diisi dengan tipe data dari primary key baru yang anda gunakan. Dari kode-kode di atas anda akan melihat ada yang menggunakan protected dan ada yang menggunakan public. Saya tidak akan menjelaskan hal tersebut karena menurut saya tidak terlalu penting dalam proses pemrograman (lebih tepatnya saya sendiri juga belum mencari tahu hal tersebut :) )


#Timestamps

Seperti biasanya, secara default Laravel sudah menganggap bahwa tabel anda memiliki 2 field default yaitu created_at dan updated_at yang secara otomatis digunakan untuk menyimpan waktu record anda dibuat dan menyimpan waktu record anda terakhir kali mengalami modifikasi. Namun jika tabel yang anda gunakan tidak memerlukan kedua hal tersebut maka anda dapat menggunakan kode di bawah ini untuk menonaktifkannya.

public $timestamps = false;

Dengan kode di atas Laravel tidak akan menambahkan record anda dengan field created_at dan updated_at saat anda melakukan proses insert maupun update. 

Jika anda tetap membutuhkan field created_at dan updated_at untuk menyimpan waktu, namun anda ingin menggunakan nama field yang lain, Laravel sudah menyediakan konstanta yang dapat anda gunakan untuk merubah field default tersebut. Caranya adalah seperti kode di bawah ini :

const CREATED_AT = 'creation_date';
const UPDATED_AT = 'last_update';

Dengan menambahkan kode di atas maka program akan menggunakan field creation_date untuk menggantikan field created_at dan field last_update untuk menggantikan field updated_at.


#Database Connection

Bagian ini adalah bagian terakhir dari artikel kali ini. Di dalam model yang kita buat, kita juga dapat menentukan koneksi database manakah yang akan kita gunakan. Secara default tentu saja koneksi database yang digunakan adalah koneksi database sesuai dengan setting di dalam file .env program yang kita buat. Namun jika anda membuat program yang membutuhkan lebih dari 1 koneksi database maka cara ini dapat digunakan untuk lebih menyederhanakan penulisan program yang kita buat. Bagaimana cara untuk menghubungkan program Laravel ke lebih dari 1 database sudah pernah saya jelaskan pada artikel sebelumnya.

Baca juga :

Laravel sudah menyediakan property $connection yang dapat kita gunakan untuk menentukan model ini terhubung dengan database yang mana. Caranya dapat dilakukan dengan menambahkan kode seperti di bawah ini :

protected $connection = 'connection-name';

Isilah nama koneksi sesuai dengan koneksi yang sudah anda daftarkan sebelumnya. 


Demikianlah penjelasan saya pada artikel Tutorial Laravel 5.5 - Eloquent Model Conventions ini. Semoga penjelasan-penjelasan di atas dapat dimengerti dan diterapkan dengan baik. Selamat mencoba.

Related Posts

Post a Comment