Query Builder
NexaModel documentation.
NexaModel · Storage() · NexaDb
$this->Storage('news')->where()->first();SELECT Operations
Basic Select
// Select semua kolom
$users = $this->Storage('users')->get();
// Select kolom tertentu
$users = $this->Storage('users')
->select(['id', 'name', 'email'])
->get();
// Select dengan alias
$users = $this->Storage('users')
->select(['name AS full_name', 'email AS user_email'])
->get();
Select dengan Fungsi
// Menggunakan fungsi SQL
$users = $this->Storage('users')
->select([
'UPPER(name) AS name_upper',
'COUNT(*) AS total_users',
'DATE_FORMAT(created_at, "%Y-%m") AS month'
])
->get();
WHERE Conditions
Basic Where
// Where sederhana
$users = $this->Storage('users')
->where('status', 'active')
->get();
// Where dengan operator
$users = $this->Storage('users')
->where('age', '>', 18)
->get();
// Multiple where conditions
$users = $this->Storage('users')
->where('status', 'active')
->where('age', '>', 18)
->get();
Advanced Where
// OR Where
$users = $this->Storage('users')
->where('status', 'active')
->orWhere('role', 'admin')
->get();
// Where In
$users = $this->Storage('users')
->whereIn('id', [1, 2, 3, 4, 5])
->get();
// Where Not In
$users = $this->Storage('users')
->whereNotIn('status', ['banned', 'deleted'])
->get();
// Where Between
$users = $this->Storage('users')
->whereBetween('age', [18, 65])
->get();
// Where Not Between
$users = $this->Storage('users')
->whereNotBetween('age', [13, 17])
->get();
// Where Null
$users = $this->Storage('users')
->whereNull('deleted_at')
->get();
// Where Not Null
$users = $this->Storage('users')
->whereNotNull('email_verified_at')
->get();
Date-based Where
// Where Date
$users = $this->Storage('users')
->whereDate('created_at', '2024-01-01')
->get();
// Where Year
$users = $this->Storage('users')
->whereYear('created_at', 2024)
->get();
// Where Month
$users = $this->Storage('users')
->whereMonth('created_at', 1)
->get();
// Where Day
$users = $this->Storage('users')
->whereDay('created_at', 15)
->get();
JOIN Operations
Inner Join
$users = $this->Storage('users')
->join('profiles', 'users.id', '=', 'profiles.user_id')
->select(['users.*', 'profiles.bio'])
->get();
Left Join
$users = $this->Storage('users')
->leftJoin('orders', 'users.id', '=', 'orders.user_id')
->select(['users.*', 'COUNT(orders.id) AS order_count'])
->groupBy('users.id')
->get();
ORDER BY, GROUP BY, HAVING
Order By
// Order by sederhana
$users = $this->Storage('users')
->orderBy('name', 'ASC')
->get();
// Multiple order by
$users = $this->Storage('users')
->orderBy('status', 'DESC')
->orderBy('name', 'ASC')
->get();
// Random order
$users = $this->Storage('users')
->inRandomOrder()
->get();
Group By
$stats = $this->Storage('users')
->select(['status', 'COUNT(*) AS count'])
->groupBy('status')
->get();
Having
$stats = $this->Storage('users')
->select(['status', 'COUNT(*) AS count'])
->groupBy('status')
->having('count', '>', 5)
->get();
LIMIT dan OFFSET
// Limit
$users = $this->Storage('users')
->limit(10)
->get();
// Limit dengan offset
$users = $this->Storage('users')
->limit(10)
->offset(20)
->get();
// Take dan Skip (alias)
$users = $this->Storage('users')
->take(10)
->skip(20)
->get();
Lanjut
Topik sebelumnya: Penggunaan Dasar. Topik berikutnya: Field Exclusion (noSelect). Lihat juga Models, Events, Helper & template, daftar dokumentasi.