Jadual Kandungan
Kandungan soalan
Penyelesaian
Rumah pembangunan bahagian belakang Golang Ralat GIN Golang semasa mengikat data borang

Ralat GIN Golang semasa mengikat data borang

Feb 10, 2024 pm 01:00 PM
limpahan timbunan

绑定表单数据时Golang GIN出错

Editor PHP Xinyi membawakan anda penyelesaian kepada masalah ralat semasa mengikat data borang dalam rangka kerja GIN Golang. Apabila menggunakan rangka kerja GIN untuk pengikatan data borang, anda kadangkala menghadapi beberapa masalah, seperti ketidakupayaan untuk menghuraikan data borang dengan betul. Masalah ini mungkin disebabkan oleh pengikatan parameter, ketidakpadanan jenis data, dsb. Artikel ini akan memperkenalkan cara untuk mengikat data borang dengan betul dan menyelesaikan ralat biasa untuk membantu pembangun berjaya menggunakan rangka kerja GIN untuk kerja pembangunan.

Kandungan soalan

Apabila saya cuba mengikat permintaan data borang pada struct, ia ralat dengan "Fatal Error: Stack Overflow".

Ini kod saya. Tiada apa yang perlu dijelaskan. Saya mula menggunakan kod tetapi tidak dapat memahaminya.

Struktur

type Wish struct {
    ID                int                `gorm:"primarykey;autoIncrement" json:"id"`
    CreatedAt         time.Time          `json:"created_at"`
    UpdatedAt         time.Time          `json:"updated_at"`
    DeletedAt         gorm.DeletedAt     `gorm:"index" json:"deleted_at"`
    UserID            int                `json:"user_id" form:"user_id"`
    User              *User              `gorm:"foreignKey:UserID" json:"user_data,omitempty"`
    WishTypeID        int                `json:"wish_type_id" form:"wish_type_id"`
    WishType          *WishType          `gorm:"foreignKey:WishTypeID" json:"wish_type_data,omitempty"`
    ProcessTrack      []*ProcessTrack    `gorm:"foreignKey:WishID" json:"process_track,omitempty"`
    VacationDateRange *VacationDateRange `gorm:"foreignKey:WishID" json:"vacation_date_range,omitempty"`
    Content           string             `gorm:"type:varchar(255)" json:"content" form:"content"`
    Status            WishStatus         `gorm:"type:integer" json:"status" form:"status"`
    Files             []*File            `gorm:"polymorphic:Module;polymorphicValue:wish_files" json:"files,omitempty"`
}

Salin selepas log masuk

Pengawal

var wish migrations.Wish
    if err := c.Bind(&wish); err != nil {
        c.JSON(400, gin.H{"error": err.Error(), "message": "Talep Okunamadı!"})
        return
    }
    c.JSON(200, wish)
    return
Salin selepas log masuk

Minta

Penyelesaian

Saya mengubah suai pengawal

type Req struct {
        Content           string                        `form:"content"`
        WishTypeID        int                           `form:"wish_type_id"`
        VacationDateRange *migrations.VacationDateRange `form:"vacation_date_range"`
    }
    err, i, g := authorizer.AuthorizeIt(c, a.Subject, a.Action)
    if err != nil {
        c.JSON(i, g)
        return
    }
    var wishReq Req
    var wish migrations.Wish
    if err := c.Bind(&wishReq); err != nil {
        c.JSON(400, gin.H{"error": err.Error(), "message": "Wish can't bind."})
        return
    }
    wish.WishTypeID = wishReq.WishTypeID
    wish.Content = wishReq.Content
    wish.VacationDateRange = wishReq.VacationDateRange
Salin selepas log masuk

Tetapi saya masih tidak faham mengapa ia tidak boleh menjadi gaya pertama. Saya juga telah menambah penggunaan biasa. Ia biasanya berfungsi juga.

err, i, g := authorizer.AuthorizeIt(c, a.Subject, a.Action)
    if err != nil {
        c.JSON(i, g)
        return
    }
    var announce mig.Announce

    err = c.Bind(&announce)
    if err != nil {
        c.JSON(400, gin.H{"error": err.Error(), "message": "Announce can't bind. Error Code: AN-CRT-20"})
        return
    }
Salin selepas log masuk

Atas ialah kandungan terperinci Ralat GIN Golang semasa mengikat data borang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Spring Security 6: cors() ditamatkan dan ditandakan untuk dialih keluar Spring Security 6: cors() ditamatkan dan ditandakan untuk dialih keluar Feb 10, 2024 pm 11:45 PM

我有下面的代码:publicSecurityFilterChainsecurityFilterChain(HttpSecurityhttp)throwsException{returnhttp.httpBasic().disable().cors().and().csrf().disable().authorizeHttpRequests().requestMatchers("

Adakah ungkapan lambda C++ menyokong rekursi? Adakah ungkapan lambda C++ menyokong rekursi? Apr 17, 2024 pm 09:06 PM

Ya, ungkapan Lambda C++ boleh menyokong rekursi dengan menggunakan std::function: Gunakan std::function untuk menangkap rujukan kepada ungkapan Lambda. Dengan rujukan yang ditangkap, ungkapan Lambda boleh memanggil dirinya secara rekursif.

Golang+CGO menggunakan ranap ucontext (sengaja) dengan SIGSEGV atau SIGTRAP apabila menggunakan tindanan yang berbeza Golang+CGO menggunakan ranap ucontext (sengaja) dengan SIGSEGV atau SIGTRAP apabila menggunakan tindanan yang berbeza Feb 09, 2024 pm 12:15 PM

Saya sedang menulis program Golang+CGO dan akan menggunakan posixucontext dalam CGO. Oleh kerana semua logik teras saya akan berada dalam fungsi bind ucontext, kita harus menangkap semua ralat dalam kod. Saya mengujinya dengan mengakses penuding nol, yang memberi saya tingkah laku yang sama sekali berbeza, semuanya bergantung pada lokasi tindanan yang digunakan oleh ucontext. Di bawah adalah butiran lanjut dengan contoh yang ringkas. Jika saya memperuntukkan tindanan ucontext pada tindanan benang, ia akan mencetuskan SIGSEGV. Tetapi jika saya memperuntukkannya pada timbunan, ia mencetuskan SIGSEGV dahulu dan kemudian SIGT apabila morestack_noctxt dipanggil

Mengapa c++ ranap apabila ia mula dilaksanakan? Mengapa c++ ranap apabila ia mula dilaksanakan? Apr 22, 2024 pm 05:57 PM

Sebab program C++ ranap apabila bermula termasuk: kehilangan perpustakaan atau kebergantungan yang diperlukan, penunjuk yang tidak dimulakan atau limpahan timbunan rujukan, segfault, isu konfigurasi sistem pengendalian, ralat program, isu perkakasan

Bagaimana untuk menyelesaikan ralat masa jalan C++: 'timbunan limpahan'? Bagaimana untuk menyelesaikan ralat masa jalan C++: 'timbunan limpahan'? Aug 25, 2023 pm 10:00 PM

Bagaimana untuk menyelesaikan ralat masa jalan C++: 'stackoverflow' Dalam program C++, apabila tahap rekursi terlalu dalam atau memori yang digunakan oleh atur cara melebihi kapasiti tindanan, ralat masa jalan "stackoverflow" akan berlaku. Apabila ralat ini berlaku, program ranap, dan sukar untuk mengenal pasti punca tertentu. Artikel ini akan memperkenalkan beberapa cara untuk menyelesaikan ralat 'stackoverflow' dan menyediakan beberapa contoh kod. Punca utama ralat masa jalan "stackoverflow" ialah dalam tindanan

Pelaksanaan rekursif fungsi C++: Analisis perbandingan algoritma rekursif dan bukan rekursif? Pelaksanaan rekursif fungsi C++: Analisis perbandingan algoritma rekursif dan bukan rekursif? Apr 22, 2024 pm 03:18 PM

Algoritma rekursif menyelesaikan masalah berstruktur melalui fungsi panggilan kendiri Kelebihannya ialah ia mudah dan mudah difahami, tetapi kelemahannya ialah ia kurang cekap dan boleh menyebabkan limpahan timbunan Algoritma bukan rekursif mengelakkan pengulangan dengan menguruskan secara eksplisit struktur data timbunan Kelebihannya ialah ia lebih cekap dan mengelakkan limpahan, kelemahannya ialah kod itu mungkin lebih kompleks. Pilihan rekursif atau bukan rekursif bergantung kepada masalah dan kekangan khusus pelaksanaan.

Apakah kesan fungsi C++ terhadap prestasi program? Apakah kesan fungsi C++ terhadap prestasi program? Apr 12, 2024 am 09:39 AM

Kesan fungsi pada prestasi program C++ termasuk overhed panggilan fungsi, pembolehubah tempatan dan overhed peruntukan objek: Overhed panggilan fungsi: termasuk peruntukan bingkai tindanan, pemindahan parameter dan pemindahan kawalan, yang mempunyai kesan ketara pada fungsi kecil. Overhed pembolehubah tempatan dan peruntukan objek: Sebilangan besar pembolehubah tempatan atau penciptaan objek dan pemusnahan boleh menyebabkan limpahan tindanan dan kemerosotan prestasi.

Apakah perbezaan antara fungsi Java dan fungsi Haskell? Apakah perbezaan antara fungsi Java dan fungsi Haskell? Apr 23, 2024 pm 09:18 PM

Perbezaan utama antara fungsi Java dan Haskell ialah: Sintaks: Java menggunakan kata kunci pulangan untuk mengembalikan hasil, manakala Haskell menggunakan simbol tugasan (=). Model pelaksanaan: Java menggunakan pelaksanaan berurutan, manakala Haskell menggunakan penilaian malas. Sistem jenis: Java mempunyai sistem jenis statik, manakala Haskell mempunyai sistem jenis fleksibel yang berkuasa yang menyemak jenis pada masa penyusunan dan masa jalankan. Prestasi praktikal: Haskell lebih cekap daripada Java apabila mengendalikan input besar kerana ia menggunakan rekursi ekor, manakala Java menggunakan rekursi.

See all articles