首頁 > 後端開發 > Golang > 主體

規則中的 ozzo 驗證對於相等值傳回錯誤

WBOY
發布: 2024-02-05 22:48:03
轉載
839 人瀏覽過

规则中的 ozzo 验证对于相等值返回错误

問題內容

我有一個簡單的程式碼,使用echo 作為引擎,使用ozzo-validation 作為請求驗證器。

func (a MyRequest) Validate() error {
    return validation.ValidateStruct(
        &a,
        validation.Field(&a.Value,
            validation.Required,
            validation.Length(1, 5),
            validation.Each(validation.NilOrNotEmpty, validation.In([]string{"true", "false"}),
            ),
        ),
    )
}
登入後複製

這是我發送的請求:

{"value":["true"]}
登入後複製

我從 In 規則中收到此錯誤:

value: (0: must be a valid value.).
登入後複製

但是當我使用 ==reflect.DeppEqual 檢查值時,值相等:

fmt.Println(reflect.DeepEqual([]string{"true", "false"}[0], a.Value[0]))
fmt.Println([]string{"true", "false"}[0] == a.Value[0])


output:
true
true
登入後複製

我在這裡做錯了什麼?


正確答案


使用validation.Each(validation.In([]string{"true", "false"})) 會將Value 切片中的每個元素與提供給validate.In 的切片進行比較,即[]string{ “真”,“假”}

使用validation.In("true", "false")Value 切片中的每個元素與validate.In 中的各個值進行比較。

以上是規則中的 ozzo 驗證對於相等值傳回錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板