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