Install Web App

Yii

Belajar Framework Yii #19 | Membuat kueri kompleks dengan Active Record

profil-penulis

Muhammad Rafitulloh Nur Ramadhani

12 Juni 2023

Active Record dalam Yii Framework tidak hanya memungkinkan Anda untuk melakukan operasi dasar (Create, Read, Update, Delete) pada data dalam database, tetapi juga memungkinkan Anda untuk membuat kueri kompleks yang lebih lanjut. Dalam artikel ini, kita akan membahas cara membuat kueri kompleks dengan menggunakan Active Record dalam Yii.

Menggunakan Query Builder

Query Builder adalah alat yang kuat dalam Yii yang memungkinkan Anda membuat kueri database secara terstruktur tanpa perlu menulis kueri SQL mentah. Anda dapat menggunakannya dengan model ActiveRecord atau secara independen. Di sini, kita akan fokus pada penggunaannya bersama model ActiveRecord.

Kueri Dasar

Berikut adalah contoh penggunaan Query Builder untuk membuat kueri sederhana:

use app\models\Post;

// Membuat instance dari Query Builder
$query = Post::find();

// Menambahkan kondisi WHERE
$query->where(['status' => 1]);

// Menyortir hasil kueri
$query->orderBy(['created_at' => SORT_DESC]);

// Mengambil hasil kueri
$posts = $query->all();

Pada contoh di atas, kita membuat instance dari Query Builder dengan menggunakan model Post. Kemudian, kita menambahkan kondisi WHERE untuk mengambil hanya posting dengan status sama dengan 1, kemudian kita menyortir hasilnya berdasarkan created_at secara descending, dan akhirnya mengambil semua hasil kueri.

Kueri yang Lebih Kompleks

Anda juga dapat membuat kueri yang lebih kompleks dengan menambahkan kondisi, penggabungan (join), dan lebih banyak lagi. Berikut adalah contoh penggunaan Query Builder yang lebih kompleks:

use app\models\Post;
use app\models\Comment;

// Membuat instance dari Query Builder
$query = Post::find()
    ->select(['post.id', 'post.title', 'COUNT(comment.id) as comment_count'])
    ->joinWith('comments')
    ->groupBy(['post.id', 'post.title'])
    ->having(['>', 'comment_count', 10])
    ->orderBy(['comment_count' => SORT_DESC]);

// Mengambil hasil kueri
$posts = $query->all();

Pada contoh ini, kita mengambil kolom id dan title dari tabel post serta menghitung jumlah komentar (comment_count) dari tabel comment yang terkait dengan setiap posting. Kita juga melakukan penggabungan dengan tabel comments, mengelompokkan hasil berdasarkan id dan title, hanya mempertahankan grup dengan comment_count lebih dari 10, dan menyortir hasil berdasarkan comment_count secara descending.

Kueri Raw SQL

Selain Query Builder, Anda juga dapat menggunakan kueri SQL mentah dengan menggunakan createCommand(). Berikut adalah contoh:

use yii\db\Expression;

// Membuat kueri SQL mentah
$query = Yii::$app->db->createCommand('
    SELECT post.id, post.title, COUNT(comment.id) as comment_count
    FROM post
    LEFT JOIN comment ON post.id = comment.post_id
    GROUP BY post.id, post.title
    HAVING comment_count > :count
    ORDER BY comment_count DESC
', [':count' => 10]);

// Mengeksekusi kueri
$posts = $query->queryAll();

Pada contoh ini, kita menggunakan createCommand() untuk membuat kueri SQL mentah yang kompleks dan menggabungkannya dengan parameter :count. Kemudian kita mengeksekusi kueri tersebut dan mengambil hasilnya.

Kesimpulan

Dengan menggunakan Query Builder atau kueri SQL mentah, Anda dapat membuat kueri database yang lebih kompleks dengan mudah dalam Yii Framework. Ini memungkinkan Anda untuk mengambil data dengan lebih tepat sesuai kebutuhan aplikasi Anda, menggabungkan tabel, dan melakukan operasi lainnya pada database dengan efisien. Dengan pemahaman ini, Anda dapat mengembangkan aplikasi Yii yang kuat dengan manipulasi data yang kompleks sesuai dengan kebutuhan Anda.

Artikel Lainnya Dengan Kategori Terkait :


1. Belajar Framework Yii #01 | Pengertian Framework Yii dan Kelebihannya

2. Belajar Framework Yii #02 | Alur Kerja Umum Yii dan MVC

3. Belajar Framework Yii #03 | Instalasi Yii Framework

4. Belajar Framework Yii #04 | Pemahaman tentang Model-View-Controller (MVC) pada Framework Yii

5. Belajar Framework Yii #05 | Model Yii : Membuat Model

6. Belajar Framework Yii #06 | Model Yii : Validasi Data

7. Belajar Framework Yii #07 | Model Yii : Menghubungkan Database

8. Belajar Framework Yii #08 | View Yii : Membuat Tampilan Yii

9. Belajar Framework Yii #09 | View Yii: Widget Bawaan Yii

10. Belajar Framework Yii #10 | View Yii: Membuat Tampilan Dinamis

11. Belajar Framework Yii #11 | Controller Yii: Membuat Action dalam Controller

12. Belajar Framework Yii #12 | Controller Yii: Menggunakan Filter

13. Belajar Framework Yii #13 | Controller Yii: Memahami Request

14. Belajar Framework Yii #14 | Routing Yii : Memahami Konfigurasi

15. Belajar Framework Yii #15 | Routing Yii : Membuat rute khusus

16. Belajar Framework Yii #16 | Routing Yii : Memahami Konsep pretty's URL

17. Belajar Framework Yii #18 | Menggunakan ActiveRecord untuk manipulasi data

18. Belajar Framework Yii #19 | Membuat kueri kompleks dengan Active Record

19. Belajar Framework Yii #20 | Membuat dan Mengelola Formulir dengan Yii

20. Belajar Framework Yii #21 | Menggunakan validasi pada formulir Yii

21. Belajar Framework Yii #22 | Menangani input dan output form dengan Yii

22. Belajar Framework Yii #23 | Security : Pengelolaan autentikasi dan otorisasi dengan Yii

23. Belajar Framework Yii #24 | Security : Implementasi Fitur Keamanan Yii

24. Belajar Framework Yii #25 | Memahami penggunaan tema (themes) dalam Yii

25. Belajar Framework Yii #26 | Menggunakan ekstensi Yii dan membangun ekstensi kustom

26. Belajar Framework Yii #27 | Membuat API menggunakan Yii

27. Belajar Framework Yii #28 | Melakukan pengujian unit dengan PHPUnit

28. Belajar Framework Yii #29 | Menggunakan alat bantu debugging dalam Yii

29. Belajar Framework Yii #30 | Menangani error dan log dalam Yii

30. Belajar Framework Yii #31 | Memahami caching dalam Yii untuk meningkatkan performa

31. Belajar Framework Yii #32 | Menyesuaikan konfigurasi aplikasi Yii untuk kebutuhan khusus

32. Belajar Framework Yii #33 | Menerapkan praktik pengembangan yang efisien dalam Yii

33. Belajar Framework Yii #34 | Mengoptimalkan query database dengan Active Record di Yii

34. Belajar Framework Yii #35 | Mempercepat waktu muat halaman dengan menggunakan asset caching di Yii

35. Belajar Framework Yii #36 | Menyesuaikan URL routing untuk meningkatkan SEO pada Yii

36. Belajar Framework Yii #37 | Mengoptimalkan penggunaan memori dalam aplikasi Yii

37. Belajar Framework Yii #38 | Meningkatkan performa dengan penggunaan Gii dalam pembangunan kode di Yii

38. Belajar Framework Yii #39 | Menggunakan teknik lazy loading untuk meningkatkan kecepatan aplikasi Yii

39. Belajar Framework Yii #40 | Menerapkan teknik penggunaan indeks dan optimasi tabel database pada Yii.

40. Mempelajari Framework Yii #17 Menghubungkan Yii dengan database

Masuk Terlebih dahulu untuk berkomentar

Paling baru
Lihat Lainnya