Operasi CRUD
NexaModel documentation.
NexaModel · Storage() · NexaDb
$this->Storage('news')->where()->first();Create (Insert)
Insert Single Record
$userId = $this->Storage('users')->insert([
'name' => 'John Doe',
'email' => 'john@example.com',
'password' => password_hash('secret', PASSWORD_DEFAULT),
'created_at' => date('Y-m-d H:i:s')
]);
echo "User created with ID: " . $userId;
Insert Multiple Records
$result = $this->Storage('users')->insertMany([
[
'name' => 'User 1',
'email' => 'user1@example.com',
'password' => password_hash('secret1', PASSWORD_DEFAULT)
],
[
'name' => 'User 2',
'email' => 'user2@example.com',
'password' => password_hash('secret2', PASSWORD_DEFAULT)
]
]);
echo "Inserted " . $result . " records";
Upsert (Insert or Update)
$result = $this->Storage('users')->upsert([
'email' => 'john@example.com',
'name' => 'John Doe Updated',
'updated_at' => date('Y-m-d H:i:s')
], ['name', 'updated_at']); // Kolom yang akan diupdate jika record sudah ada
Read (Select)
Get All Records
$users = $this->Storage('users')->get();
Get First Record
$user = $this->Storage('users')
->where('email', 'john@example.com')
->first();
Get Last Record
$user = $this->Storage('users')
->orderBy('id', 'DESC')
->first();
// atau
$user = $this->Storage('users')->last();
Get Specific Value
$name = $this->Storage('users')
->where('id', 1)
->value('name');
Pluck Values
// Get array of names
$names = $this->Storage('users')->pluck('name');
// Get associative array (key => value)
$users = $this->Storage('users')->pluck('name', 'id');
Update
Update Records
$affected = $this->Storage('users')
->where('id', 1)
->update([
'name' => 'Updated Name',
'updated_at' => date('Y-m-d H:i:s')
]);
echo "Updated " . $affected . " records";
Update Multiple Records
$affected = $this->Storage('users')
->where('status', 'inactive')
->update([
'status' => 'active',
'updated_at' => date('Y-m-d H:i:s')
]);
Increment/Decrement
// Increment
$this->Storage('users')
->where('id', 1)
->increment('login_count');
// Increment dengan nilai custom
$this->Storage('users')
->where('id', 1)
->increment('points', 50);
// Increment dengan data tambahan
$this->Storage('users')
->where('id', 1)
->increment('login_count', 1, [
'last_login' => date('Y-m-d H:i:s')
]);
// Decrement
$this->Storage('users')
->where('id', 1)
->decrement('points', 10);
Delete
Delete Records
$affected = $this->Storage('users')
->where('status', 'banned')
->delete();
echo "Deleted " . $affected . " records";
Force Delete
$affected = $this->Storage('users')
->where('id', 1)
->forceDelete();
Lanjut
Topik sebelumnya: Record Exclusion (noSelectFields). Topik berikutnya: Aggregation dan Statistik. Lihat juga Models, Events, Helper & template, daftar dokumentasi.