Menambahkan query search di Gofiber
Langkah-langkah Membuat Fitur Pencarian
Update Model Product untuk Mendukung Pencarian: Tambahkan fungsi
SelectAllProducts
disrc/models/Products.go
untuk mendukung pencarian berdasarkan nama.// src/models/Products.go func SelectAllProducts(name string) []*Product { var items []*Product name = "%" + name + "%" configs.DB.Preload("Category").Where("name LIKE ?", name).Find(&items) return items }
Update Model Category untuk Mendukung Pencarian: Tambahkan fungsi
SelectAllCategories
disrc/models/Category.go
untuk mendukung pencarian berdasarkan nama.// src/models/Category.go package models import ( "gofiber/src/configs" "gorm.io/gorm" ) type Category struct { gorm.Model Name string `json:"name" validate:"required,min=3,max=50"` Image string `json:"image"` Products []ApiProduct `json:"products"` } type ApiProduct struct { Name string `json:"name" ` Price float64 `json:"price" ` Stock int `json:"stock" ` CategoryID uint `json:"category_id"` } func SelectAllCategories(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) }).Where("name LIKE ?", name).Find(&categories) return categories }
Update Controller Product untuk Mendukung Pencarian: Modifikasi fungsi
GetAllProducts
disrc/controllers/ProductController.go
untuk menangani parameter pencarian.// src/controllers/ProductController.go package controllers import ( "gofiber/src/models" "github.com/gofiber/fiber/v2" ) func GetAllProducts(c *fiber.Ctx) error { keyword := c.Query("search") products := models.SelectAllProducts(keyword) return c.JSON(products) }
Update Controller Category untuk Mendukung Pencarian: Modifikasi fungsi
GetAllCategories
disrc/controllers/CategoryController.go
untuk menangani parameter pencarian.// src/controllers/CategoryController.go func GetAllCategories(c *fiber.Ctx) error { keyword := c.Query("search") categories := models.SelectAllCategories(keyword) return c.JSON(categories) }
Penjelasan Langkah-langkah
Update Model Product dan Category:
Modifikasi model
Product
danCategory
untuk menambahkan fungsi pencarian yang menggunakan queryLIKE
pada nama.
Update Controller Product dan Category:
Di dalam controller, ambil parameter query
search
dari URL menggunakanc.Query("search", "")
.Panggil fungsi pencarian di model yang telah dimodifikasi dengan parameter pencarian yang diambil dari URL.
Dengan langkah-langkah ini, Anda telah mengimplementasikan fitur pencarian pada produk dan kategori di aplikasi Fiber Anda. Hasil pencarian akan menampilkan daftar produk atau kategori yang sesuai dengan kata kunci pencarian yang diberikan.
Last updated