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.
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") } }
Hasilnya akan sentiasa berjaya dan pengesah tersuai tidak akan dipanggil. Teruskan ke taman permainan
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 })
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!