Dengan populariti Internet, ulasan telah menjadi bahagian penting dalam banyak laman web. Kewujudan komen boleh menjadikan laman web lebih interaktif, dan pengguna juga boleh berkomunikasi dengan pendapat masing-masing melalui komen. Walau bagaimanapun, apabila bilangan ulasan meningkat, cara untuk membuat pertanyaan dan mengurus ulasan sedia ada dengan cekap telah menjadi sangat penting. Artikel ini akan memperkenalkan cara membuat pertanyaan ulasan dalam golang.
Dalam Go, anda boleh menggunakan pangkalan data untuk menyimpan dan menanyakan data ulasan. Untuk memudahkan operasi, kami menggunakan rangka kerja ORM GORM bahasa Go untuk melaksanakan operasi menambah, memadam, mengubah suai dan menyemak ulasan.
Berikut ialah model ulasan ringkas:
type Comment struct { gorm.Model PostID uint `gorm:"not null"` ParentID uint Content string `gorm:"not null"` IP string `gorm:"not null"` UserAgent string `gorm:"not null"` Author string `gorm:"not null"` }
Dalam kod di atas, kami mentakrifkan model ulasan asas menggunakan jenis Model GORM. Pada masa yang sama, kami juga menggunakan atribut seperti PostID dan ParentID untuk membantu dalam menanyakan ulasan.
Seterusnya, kami akan melaksanakan beberapa fungsi pertanyaan ulasan.
Kita boleh menggunakan kod berikut untuk mendapatkan semua ulasan artikel:
func GetComments(postID uint) ([]Comment, error) { var comments []Comment err := db.Where("post_id = ?", postID).Find(&comments).Error if err != nil { return nil, err } return comments, nil }
Di Atas Dalam kod, kami menanyakan komen yang post_idnya sama dengan parameter postID yang diberikan melalui kaedah Where GORM, dan mengembalikan semua ulasan yang ditanya.
Jika kami ingin mendapatkan semua ulasan yang disiarkan oleh pengguna, kami boleh menggunakan kod berikut:
func GetUserComments(userId uint) ([]Comment, error) { var comments []Comment err := db.Where("author = ?", userId).Find(&comments).Error if err != nil { return nil, err } return comments, nil }
Dalam kod di atas, kami menanyakan komen yang pengarangnya sama dengan parameter userId yang diberikan melalui kaedah Where GORM dan mengembalikan semua ulasan yang ditanya.
Jika ulasan mempunyai ulasan ibu bapa, kita boleh menggunakan kod berikut untuk menanyakan ulasan induknya:
func GetParentComment(childComment *Comment) (*Comment, error) { var parentComment Comment err := db.Where("id = ?", childComment.ParentID).First(&parentComment).Error if err != nil { return nil, err } return &parentComment, nil }
Dalam kod di atas, kami menggunakan kaedah Pertama GORM untuk menanyakan komen yang idnya sama dengan parameter childComment.ParentID yang diberikan dan mengembalikan hasil pertanyaan kepada pemanggil.
Akhir sekali, jika kita perlu mendapatkan bilangan ulasan pada artikel, kita juga boleh menggunakan kod berikut:
func GetCommentCount(postID uint) (int, error) { var count int err := db.Model(&Comment{}).Where("post_id = ?", postID).Count(&count).Error if err != nil { return 0, err } return count, nil }
Dalam kod di atas, kami menggunakan kaedah Model GORM untuk menanyakan bilangan komen yang post_idnya sama dengan postID parameter yang diberikan dan mengembalikan hasil pertanyaan.
Setakat ini, kami telah memperkenalkan operasi berkaitan cara untuk membuat pertanyaan ulasan dalam Go. Melalui kod mudah ini, kami boleh membuat pertanyaan dan mengurus ulasan sedia ada dengan cekap, yang memberikan bantuan besar untuk pengendalian tapak web.
Atas ialah kandungan terperinci Bagaimana untuk menanyakan ulasan dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!