pengesahan golang gookit tidak berfungsi dengan pengesah tersuai global

PHPz
Lepaskan: 2024-02-14 14:42:16
ke hadapan
718 orang telah melayarinya

golang gookit validate 不适用于全局自定义验证器

editor php Banana menemui masalah apabila menggunakan pengesahan gookit golang, iaitu, ia tidak terpakai kepada pengesah tersuai global. gookit validate ialah perpustakaan pengesahan yang mudah dan berkuasa yang menyediakan banyak peraturan pengesahan terbina dalam, tetapi terdapat beberapa batasan dalam menyokong peraturan pengesahan tersuai global. Ini mungkin menyebabkan beberapa masalah kepada pembangun, jadi anda perlu memberi perhatian kepada perkara ini apabila menggunakan pengesahan gookit. Seterusnya, kami akan meneroka isu ini secara terperinci dan menyediakan beberapa penyelesaian.

Kandungan soalan

Saya cuba menggunakan pengesah golang gookit dan menambah pengesah tersuai tetapi fungsi itu tidak pernah dicetuskan.

package main

import (
    "fmt"

    "github.com/gookit/validate"
)

type Sample struct {
    Name    string `json:"name" validate:"required"`
    Addres  string `json:"address" validate:"required"`
    Payment string `json:"payment" validate:"payment_method"`
}

func main() {
    validate.AddValidator("payment_method", func(val interface{}) bool {
        value, ok := val.(string)
        fmt.Println(value)
        if !ok {
            return false
        }
        if value != "hello" {
            return false
        }
        return true
    })
    s := Sample{Name: "name", Addres: "address", Payment: ""}
    v := validate.Struct(&s)
    res := v.Validate()
    if !res {
        fmt.Println(v.Errors.OneError())
    } else {
        fmt.Println("SUCCESS")
    }
}
Salin selepas log masuk

Hasilnya akan sentiasa berjaya dan pengesah tersuai tidak akan dipanggil. Teruskan ke taman permainan

penyelesaian

anda perlu menyebutnya secara jelas dalam konfigurasi ,

Jangan langkau nilai nol

Seperti yang ditunjukkan di bawah:

validate.Config(func(opt *validate.GlobalOption) {
        opt.SkipOnEmpty = false
})
Salin selepas log masuk

Kemudian, jalankan kod dan ia akan berfungsi

Atas ialah kandungan terperinci pengesahan golang gookit tidak berfungsi dengan pengesah tersuai global. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan