Categories: GoFrame 教程

GoFrame 数据校验-FAQ

Struct默认值对required规则的影响

Struct​的属性会有默认值,在某些情况下会引起​required​规则的失效。例如:

type User struct {
 Name string `v:"required"`
 Age  uint   `v:"required"`
}

在该结构体校验中,​Age​属性的​required​校验将会失效,因为​Age​即便没有输入也会有默认值​0​。

这里有三种解决方案:

  1. (推荐)使用​Struct​校验的​Assoc​联合校验方法设置联合校验参数,在校验​Struct​类型参数时,参数值将以​Assoc​方法中给定的参数为准执行校验。
  2. 使用组合校验规则来弥补默认值对​required​规则,例如以上示例中将​Age​属性的校验规则修改为​required|min:1​将能达到业务校验的效果。
  3. 将属性改为指针类型,例如​*int​、​*float64​、​*g.Var​等,通过指针类型默认值为​nil​的特点绕过了这个问题。

唐伯虎点蚊香

前端小白,想各位学习!

Share
Published by
唐伯虎点蚊香

Recent Posts

vue:页面注入js修改input值

一般会直接这样写: let z…

2 小时 ago

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

1 月 ago