Belajar Laravel (Chapter 9 | Tutorial Eloquent Model )

Tobi Ahmad
dotlocal
Published in
3 min readApr 11, 2020

Pada saat saya menggunakan Laravel 4, laravel masih mengikuti struktur folder MVC seperti framework Codeigniter, yaitu terdapat folder app seperti :

  • controllers
  • models
  • views

Kemudian pada Laravel versi 5 ke atas folder models secara default sudah dihilangkan, ketika membuat model maka letaknya langsung di folder app, seperti app/User.php.

Scope of This Chapter

Pada tutorial ini kita akan membahas model & eloquent model. Pada saat artikel ini dibuat, saya menggunakan Laravel versi 7.x.

Model

Model pada Laravel merupakah suatu class yang extend class Eloquent Model, contohnya kita membuat model User, maka pada model User terdapat extends ke class Illuminate\Database\Eloquent\Model.
Jika extend class dihapus, maka fitur/method yang terpadat pada Eloquent tidak bisa digunakan.

Eloquent

Pada framework Laravel sudah tersedia Object Relational Mapping (ORM) yang namanya Eloquent. Eloquent merupakah Active Record bawaan Laravel yang bertujuan mengkonversi data pada database. Jadi setiap table pada database akan memiliki “Model” yang digunakan pada proses CRUD.

Sebelum memulai, pastikan kita sudah configurasi koneksi database pada config/database.php. Panduannya bisa bisa dilihat di https://medium.com/dotlocal/belajar-laravel-chapter-5-tutorial-database-39bc9e3ccac

Mendefinisikan Model

Semua models pada laravel tersimpan pada folder app, namun kita juga bisa custom lokasi foldernya.

Untuk membuat table kita bisa menggunakan perintah Artisan make:model

php artisan make:model Category

Jika kita ingin membuat migration saat generate model, tinggal tambahkan option — migration atau -m, contohnya

php artisan make:model Category --migration//atau
php artisan make:model Category --m

Pada gambar diatas kita telah membuat model dan migration secara bersamaan, akan muncul model baru app/Category.php

Buka file app/Category.php

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Category extends Model
{
//
}

Ketentuan Eloquent Model

Pada contoh Category model, kita bisa menambil semua data yang ada database tabel categories.

Penamaan Model

Penamaan model di Laravel ialah nama table plural dan model singular. Contohnya seperti

  • Model Category digunakan pada table categories
  • Model User pada table users
  • Model News pada table news

Namun kita juga bisa custom nama table menggunakan property table pada model.

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Category extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'category';
}

Primary Keys

Secara default primary keys pada model dengan nama column id, jika kita ingin mengubah column primary key, bisa tambahkan protected $primaryKey property pada model.

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Category extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'category';
/**
* The primary key associated with the table.
*
* @var string
*/
protected $primaryKey = 'category_id';
}

Primary Keys Non-Incrementing

Primary key pada Eloquent juga diasumsikan bahwa isi atau value dari column tersebut ialah increment integer. Jika column primary key yang kita gunakan tidak increment dan bukan numeric, maka kita bisa tambahkan public $incrementing property pada model dengan value false.

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Category extends Model
{
/**
* Indicates if the IDs are auto-incrementing.
*
* @var bool
*/
public $incrementing = false;
}

Contohnya jika kita menggunakan column order_id sebagai primary key yang valuenya bukan inclement.

Primary Keys Not an Integer

Jika primary key bukan sebuah integer alias valuenya string, maka kita bisa tambahkan protected $keyType property pada model dengan value string:

<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Category extends Model
{
/**
* The "type" of the auto-incrementing ID.
*
* @var string
*/
protected $keyType = 'string';
}

Contohnya jika kita menggunaakan primary key dengan value string seperti “A10001”

Next Chapter

Views : https://medium.com/dotlocal/belajar-laravel-chapter-10-tutorial-views-82a67aadee74

Support the Author

Jika suka dengan artikel ini, bisa support saya ditautan berikut ini https://karyakarsa.com/tobidsn :)

Cheers
Tobi Ahmad
Founder of Dot Local

--

--

Tobi Ahmad
dotlocal

Web Developer, Blogger, & Open source enthusiast.