Nxdom Framework

Nusantara eXtreme Development Object Model — dokumentasi resmi

API Reference

Menentukan tabel yang akan digunakan.

NexaModel · Storage() · NexaDb

$this->Storage('news')->where()->first();

Core Methods

table(string $table)

Menentukan tabel yang akan digunakan.

Storage(string $table)

Alias untuk method table().

select(array $columns)

Menentukan kolom yang akan dipilih.

where(string $column, string $operator, mixed $value, string $boolean = 'AND')

Menambahkan kondisi WHERE.

get()

Mengeksekusi query dan mengembalikan semua hasil.

first()

Mengeksekusi query dan mengembalikan hasil pertama.

insert(array $data)

Menambahkan record baru.

update(array $data)

Mengupdate record yang cocok dengan kondisi.

delete()

Menghapus record yang cocok dengan kondisi.

Aggregation Methods

count(string $column = '*')

Menghitung jumlah record.

sum(string $column)

Menjumlahkan nilai kolom.

avg(string $column)

Menghitung rata-rata nilai kolom.

min(string $column)

Mencari nilai minimum.

max(string $column)

Mencari nilai maksimum.

Pagination Methods

paginate(int $page, int $perPage)

Pagination dengan data.

paginateInfo(int $page, int $perPage)

Informasi pagination.

Utility Methods

raw(string $sql, array $bindings = [])

Eksekusi raw SQL query.

transaction(callable $callback)

Eksekusi dalam transaction.

exists()

Cek apakah record ada.

toSql()

Mendapatkan SQL query string.

dd()

Debug dump query.

Generic Record Methods

insertRecord(string $table, array $data)

Insert record dengan auto timestamps.

updateRecord(string $table, array $data, int $id)

Update record berdasarkan ID dengan auto timestamp.

deleteRecord(string $table, int $id)

Delete record berdasarkan ID.

findRecord(string $table, int $id)

Find record berdasarkan ID.

Field Exclusion Methods

noSelect(array|string $excludeColumns)

Mengecualikan kolom tertentu dari SELECT statement.

except(array|string $excludeColumns)

Alias untuk noSelect().

exclude(array|string $excludeColumns)

Alias untuk noSelect().

without(array|string $excludeColumns)

Alias untuk noSelect().

ignore(array|string $excludeColumns)

Alias untuk noSelect().

skipFields(array|string $excludeColumns)

Alias untuk noSelect().

exceptFrom(array|string $excludeColumns, array $allColumns)

Mengecualikan kolom dari daftar kolom manual.

noSelectFrom(array|string $excludeColumns, array $allColumns)

Alias untuk exceptFrom().

withoutFrom(array|string $excludeColumns, array $allColumns)

Alias untuk exceptFrom().

noPassword()

Tidak memilih field password.

noTimestamps()

Tidak memilih field timestamps.

noSensitive(array $additionalExcludes = [])

Tidak memilih field sensitif.

noTokens()

Tidak memilih field token.

noId()

Tidak memilih field ID.

noSystem()

Tidak memilih field sistem.

exceptSensitive(array $additionalExcludes = [])

Alias untuk noSensitive().

exceptTimestamps(array $additionalExcludes = [])

Mengecualikan field timestamp dengan field tambahan.

exceptSystemFields(array $additionalExcludes = [])

Mengecualikan field sistem dengan field tambahan.

selectPublicFields(array $additionalIncludes = [])

Memilih field publik yang aman.

selectMinimal(array $baseFields = ['id', 'name', 'email'], array $additionalFields = [])

Memilih field minimal.

Record Exclusion Methods

noSelectFields(array $conditions)

Mengecualikan record berdasarkan kondisi field.

hideRecords(array $conditions)

Alias untuk noSelectFields().

excludeRecords(array $conditions)

Alias untuk noSelectFields().

skipRecords(array $conditions)

Alias untuk noSelectFields().

withoutRecords(array $conditions)

Alias untuk noSelectFields().

filterOut(array $conditions)

Alias untuk noSelectFields().

onlyActive(string $statusField = 'is_active')

Hanya menampilkan record aktif.

onlyInactive(string $statusField = 'is_active')

Hanya menampilkan record tidak aktif.

notDeleted(string $deletedField = 'deleted_at')

Tidak termasuk record yang dihapus (soft delete).

onlyDeleted(string $deletedField = 'deleted_at')

Hanya menampilkan record yang dihapus.

Query Shortcut Methods

latest(string $column = 'created_at')

Order by kolom secara descending.

oldest(string $column = 'created_at')

Order by kolom secara ascending.

firstOrFail()

Get first record atau throw exception.

take(int $value)

Alias untuk limit().

skip(int $value)

Alias untuk offset().

distinct(array $columns = null)

Select distinct values.

Advanced Aggregation Methods

countMultipleWhere(array $whereConditions, string $countColumn = '*')

Count dengan multiple where conditions.

quickStatusCount(string $statusColumn = 'status', array $statusValues = ['active', 'inactive'])

Quick count berdasarkan status.

getPercentages(string $column, array $conditions, int $decimals = 1)

Get percentages untuk kondisi tertentu.

countColumns(array $columns)

Count multiple columns.

sumColumns(array $columns)

Sum multiple columns.

avgColumns(array $columns)

Average multiple columns.

sumColumnsWithPercentage(array $columns)

Sum dengan percentage.

getColumnPercentages(array $columns)

Get column percentages.

Display Methods

getAndDisplay(bool $withPre = false)

Display hasil query dengan format.

firstAndDisplay(bool $withPre = false)

Display record pertama dengan format.

countAndDisplay(bool $withPre = false, string $column = '*')

Display count dengan format.

countByConditionsAndDisplay(string $column, array $conditions, bool $withPre = false)

Display count by conditions.

countWithPercentageAndDisplay(string $column, array $conditions, bool $withPre = false)

Display count dengan percentage.

aggregateAndDisplay(array $columns, string $operation = 'sum', bool $withPre = false)

Display aggregation results.

Union Methods

union($query, bool $all = false)

Union dengan query lain.

unionAll($query)

Union all dengan query lain.

Utility Methods Extended

toJson(mixed $data, bool $prettyPrint = false)

Convert data ke JSON string.

addSlug(string $value)

Generate slug dari string.

handleNullValues(array $results, array $defaults = [])

Handle null values dengan default.

handleNullValue(array $record, array $defaults = [])

Handle null value untuk single record.

selectWithDefaults(array $columns)

Select dengan default values menggunakan COALESCE.

render(bool $withPre = false)

Render hasil query.

dump()

Dump query untuk debugging.

Validation Methods

testColumnValidation(array $columns)

Test validasi kolom.

testColumnValidationAndDisplay(array $columns, bool $withPre = false)

Test dan display validasi kolom.

Database Info Methods

showTablesFormatted(bool $withPre = false)

Show tables dengan format.

showTablesListFormatted(bool $withPre = false)

Show tables list dengan format.

showTableColumnsFormatted(string $tableName, bool $withPre = false)

Show table columns dengan format.

showDatabaseInfoFormatted(bool $withPre = false)

Show database info dengan format.

exploreDatabase(bool $withPre = false, bool $showColumns = false)

Explore database structure.

Working Days Methods

getWorkingDaysRange(string $startDate, int $workingDays = 5)

Mendapatkan rentang hari kerja dari tanggal tertentu.

getCurrentWorkWeek(string $referenceDate = null)

Mendapatkan rentang minggu kerja saat ini (Senin-Jumat).

whereWorkingDays(string $dateColumn, string $startDate = null, int $workingDays = 5)

Filter query berdasarkan rentang hari kerja. Jika workingDays = 0, filter hanya tanggal tersebut.

whereCurrentWorkWeek(string $dateColumn, string $referenceDate = null)

Filter query berdasarkan minggu kerja saat ini.

isWorkingDay(string $date)

Cek apakah tanggal adalah hari kerja.

getWorkingDaysList(string $startDate, string $endDate)

Mendapatkan daftar hari kerja antara dua tanggal.

countWorkingDays(string $startDate, string $endDate)

Menghitung jumlah hari kerja antara dua tanggal.

NexaModel menyediakan interface yang powerful dan aman untuk berinteraksi dengan database. Dengan fitur-fitur seperti query builder yang ekspresif, sistem caching, monitoring performa, dan keamanan yang ketat, NexaModel membantu developer membangun aplikasi yang robust dan scalable.

Untuk informasi lebih lanjut dan update terbaru, silakan kunjungi dokumentasi resmi atau repository GitHub.

Dokumentasi ini dibuat untuk NexaModel versi terbaru. Pastikan untuk selalu menggunakan versi terbaru untuk mendapatkan fitur dan keamanan terkini._

Lanjut

Topik sebelumnya: Best Practices. Topik berikutnya: Events & injection. Lihat juga Models, Events, Helper & template, daftar dokumentasi.