ORM di Elysia-Light
Model di Elysia-Light adalah lapisan ORM ringan yang dibangun di atas Knex.js. Model bertugas mendefinisikan skema data, relasi, casting, hook lifecycle, serta helper query yang terintegrasi langsung dengan ControllerContext.
Mendefinisikan Model
Model dibuat dengan mewarisi abstract class Model. Field dan perilakunya didefinisikan menggunakan decorator agar deklaratif dan mudah dibaca.
Kode berhasil di copy!
5
- string / number / boolean / date / json — Casting otomatis dari dan ke database
- fillable — Field boleh diisi melalui payload
- selectable — Field boleh di-select
- searchable — Field bisa digunakan untuk pencarian
Query Menggunakan Model
Query dimulai dengan Model.query(). Query builder ini merupakan Knex QueryBuilder yang telah diperluas.
Kode berhasil di copy!
5
Search
Kode berhasil di copy!
5
Filter
Kode berhasil di copy!
5
Select
Kode berhasil di copy!
5
Sort
Kode berhasil di copy!
5
Expand
Kode berhasil di copy!
5
Paginate
Kode berhasil di copy!
5
Option
Kode berhasil di copy!
5
Paginate Or Option
Kode berhasil di copy!
5
Insert / Menyimpan Data
Model mendukung pendekatan instance maupun static helper.
Kode berhasil di copy!
5
Update / Mengubah Data
Update hanya akan menyimpan field yang berubah (dirty checking). Delete mendukung soft delete dan force delete.
Kode berhasil di copy!
5
Pump & Upsert Data
Kode berhasil di copy!
5
Delete / Hapus Data
Kode berhasil di copy!
5
Relasi Antar Model
Relasi didefinisikan menggunakan decorator seperti HasMany, HasOne, BelongsTo, dan BelongsToMany.
Has One
Kode berhasil di copy!
5
Has Many
Kode berhasil di copy!
5
Belongs To
Kode berhasil di copy!
5
Belongs To Many
Kode berhasil di copy!
5
Attribute Model
Kode berhasil di copy!
5
Hook Model
Model mendukung hook seperti before-create, after-update, before-delete, dan lainnya untuk mengontrol lifecycle data.
Before Create
Kode berhasil di copy!
5
After Create
Kode berhasil di copy!
5
Before Update
Kode berhasil di copy!
5
After Update
Kode berhasil di copy!
5
Before Delete
Kode berhasil di copy!
5
After Delete
Kode berhasil di copy!
5
Non-Aktif Hook dari Controller
Kode berhasil di copy!
5
Override Hook dari Controller
Kode berhasil di copy!
5
Where Relasi
Where Has
Kode berhasil di copy!
5
Where Doesnt Have
Kode berhasil di copy!
5