Laravel: Model


09/10/2016 11:05:52 256

Model ialah class PHP yang merepresentasikan suatu tabel dalam database. Dalam Laravel atau framework lain, untuk mengakses suatu data pada database dan memanipulasi data khususnya tabel direpresentasikan dalam bentuk class. Class Model pada Laravel terletak pada direktori app dengan namespace App, namun anda dapat merubah atau mengrupkan pada direktori tertentu. Penamaan model dan file haruslah sama, misalkan terdapat class Berita maka harus disimpan dalam file Berita.php. Berikut ialah contoh model

<?php
namespace App;

use Illuminate\Database\Eloquent\Model; 

class Berita extends Model
{
    protected $table = "berita";
}

Selain properti $table terdapat beberapa properi yakni:

  1. protected $fillable digunakan untuk mendefinisikan field apa saja yang dapat diisi secara jamak. Nilai dari properti ini ialah array yang berisi field yang boleh diisi. eg. array('nama', 'alamat', '...')
  2. protected $guarded digunakan untuk mendefinisikan field apa saja yang tidak dapat diisi secara jamak. Nilai dari properti ini ialah array yang berisi field yang diabaikan. eg. array('id', '...', '...')
  3. protected $hidden digunakan untuk mendefinisikan field apa saja yang di-hidden/tidak dimunculkan saat data ditampilkan. Nilai dari properti ini ialah array yang berisi field yang tidak ditampilkan. eg. array('password', '...', '...')
  4. protected $timestamps digunakan untuk mendefinisikan apakah ada field created_at dan updated_at pada suatu tabel. Nilai dari properti ini ialah true atau false

Penamaan

Suatu class Model memiliki nama sesuai dengan nama tabelnya, dimana terdapat aturan (berlaku untuk penamaan dalam bahasa ingris) nama suatu class singular, misalkan Post dan nama tabel yang ditanganinya bersifat plural (jamak), misalkan posts. Jika kita tidak mengikuti aturan ini maka kita harus mendefinisikan tabel tersebut seperti pada contoh diatas.

Timestamp

Model pada Laravel secara default "menganggap" pada tabel yang kita buat memiliki field created_at dan updated_at, dimana tabel ini digunakan untuk mencatat waktu ketika kita membuat record dan mengubah record tersebut. Model otomatis akan memberikan nilai pada field ini. Namun, kadang kita tidak memerlukan atau tidak menggunakan field ini, untuk itu kita harus mendefinisikan property public $timestamps = false; pada model kita, seperti contoh berikut:

<?php
namespace App;

use Illuminate\Database\Eloquent\Model; 

class Berita extends Model
{
    protected $table = "berita";
    public $timestamps = false;
}

Mengambil Data (READ)

Insert dan Update Data (INSERT dan UPDATE)

Delete Data (DELETE)