Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menanyakan ulasan dalam golang

Bagaimana untuk menanyakan ulasan dalam golang

PHPz
PHPzasal
2023-04-14 09:33:53857semak imbas

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.

  1. Dapatkan semua ulasan artikel

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.

  1. Dapatkan semua ulasan yang disiarkan oleh pengguna

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.

  1. Dapatkan ulasan ibu bapa bagi ulasan

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.

  1. Dapatkan bilangan ulasan pada artikel

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn