Nxdom Framework

Nusantara eXtreme Development Object Model — dokumentasi resmi

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.