Menambahkan query sort di Gofiber
Langkah-langkah Menambahkan Fitur Sorting
Update Model Product untuk Mendukung Sorting: Tambahkan parameter
sort
pada fungsiSelectAllProducts
untuk mendukung pengurutan data.func SelectAllProducts(sort, name string) []*Product { var items []*Product name = "%" + name + "%" configs.DB.Preload("Category").Order(sort).Where("name LIKE ?", name).Find(&items) return items }
Update Model Category untuk Mendukung Sorting: Tambahkan parameter
sort
pada fungsiSelectAllCategories
untuk mendukung pengurutan data.func SelectAllCategories(sort, name string) []*Category { var categories []*Category name = "%" + name + "%" configs.DB.Preload("Products", func(db *gorm.DB) *gorm.DB { var items []*ApiProduct return db.Model(&Product{}).Find(&items) }).Order(sort).Where("name LIKE ?", name).Find(&categories) return categories }
Update Controller Product untuk Mendukung Sorting: Modifikasi fungsi
GetAllProducts
disrc/controllers/ProductController.go
untuk menangani parameter sorting.// src/controllers/ProductController.go package controllers import ( "gofiber/src/models" "strings" "github.com/gofiber/fiber/v2" ) func GetAllProducts(c *fiber.Ctx) error { sort := c.Query("sorting") if sort == "" { sort = "ASC" } sortby := c.Query("orderBy") if sortby == "" { sortby = "name" } sort = sortby + " " + strings.ToLower(sort) keyword := c.Query("search") products := models.SelectAllProducts(sort, keyword) return c.JSON(products) }
Update Controller Category untuk Mendukung Sorting: Modifikasi fungsi
GetAllCategories
disrc/controllers/CategoryController.go
untuk menangani parameter sorting.// src/controllers/CategoryController.go package controllers import ( "gofiber/src/models" "strings" "github.com/gofiber/fiber/v2" ) func GetAllCategories(c *fiber.Ctx) error { sort := c.Query("sorting") if sort == "" { sort = "ASC" } sortby := c.Query("orderBy") if sortby == "" { sortby = "name" } sort = sortby + " " + strings.ToLower(sort) keyword := c.Query("search") categories := models.SelectAllCategories(sort, keyword) return c.JSON(categories) }
Penjelasan Langkah-langkah
Update Model Product dan Category:
Modifikasi model
Product
danCategory
untuk menambahkan fungsi pencarian dan sorting.Fungsi
SelectAllProducts
danSelectAllCategories
menerima parametersort
danname
untuk mendukung pencarian dan pengurutan.
Update Controller Product dan Category:
Di dalam controller, ambil parameter query
sorting
danorderBy
dari URL menggunakanc.Query
.Gabungkan parameter sorting dan orderBy untuk digunakan dalam query database.
Panggil fungsi pencarian dan sorting di model yang telah dimodifikasi dengan parameter yang diambil dari URL.
Dengan langkah-langkah ini, Anda telah mengimplementasikan fitur pencarian dan sorting pada produk dan kategori di aplikasi Fiber Anda. Hasil pencarian dan sorting akan menampilkan daftar produk atau kategori yang sesuai dengan kata kunci dan urutan yang diberikan.
Last updated