Menambahkan query sort di Gofiber
Langkah-langkah Menambahkan Fitur Sorting
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 }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 }// 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) }// 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
Last updated