Study
CakePHP

Query Builder di CakePHP

Penjelasan

Query di CakePHP dimulai dari method find() pada Table, dirangkai dengan where(), order(), limit(), lalu diakhiri toArray() atau iterasi langsung lewat foreach (query CakePHP bersifat iterable, mirip lazy collection).

Contoh Konsep

<?php

$produkTable = $this->fetchTable('Produk');

// Ambil semua produk dengan harga di atas 50000, urutkan dari termahal
$produkMahal = $produkTable->find()
    ->where(['harga >' => 50000])
    ->order(['harga' => 'DESC'])
    ->toArray();

// Ambil satu produk pertama yang namanya mengandung "Kaos"
$produk = $produkTable->find()
    ->where(['nama LIKE' => '%Kaos%'])
    ->first();

// Hitung jumlah produk yang stoknya habis
$jumlahHabis = $produkTable->find()->where(['stok' => 0])->count();

Praktikum

Pakai ArtikelTable dari materi sebelumnya. Buat query yang mengambil semua artikel yang judulnya mengandung kata "CakePHP" (LIKE), diurutkan dari yang terbaru (created DESC).

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

find() TANPA method pengambil hasil (toArray(), first(), count()) mengembalikan objek Query yang BELUM dieksekusi ke database — mirip query builder Eloquent, query sesungguhnya baru jalan saat hasilnya benar-benar dibutuhkan (lazy evaluation).