亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

「Goravel 上新」驗證表單的三種新姿勢,估計你只用過一種

標簽:
Go laravel

验证用户输入的数据是我们开发中最常见的需求,Goravel 提供三种验证姿势,个个简单好用!

第一种:简单直接式

根据表单内容直接校验:

func (r *PostController) Store(ctx http.Context) {
  validator, err := ctx.Request().Validate(map[string]string{
    "title": "required|max_len:255",
    "body": "required",
  })
}

第二种:自由定义式

自定义验证数据:

validator, err := facades.Validation.Make(map[string]any{
  "name": "Goravel",
}, map[string]string{
  "title": "required|max_len:255",
  "body":  "required",
})

第三种:优雅文艺式

使用命令 go run . artisan make:request StorePostRequest 创建一个「表单请求类」,并定义规则:

package requests

import (
  "github.com/goravel/framework/contracts/http"
  "github.com/goravel/framework/contracts/validation"
)

type StorePostRequest struct {
  Name string `form:"name" json:"name"`
}
// 验证授权
func (r *StorePostRequest) Authorize(ctx http.Context) error {
  return nil
}
// 定义规则
func (r *StorePostRequest) Rules() map[string]string {
  return map[string]string{
    "title": "required|max_len:255",
    "body":  "required",
  }
}
// 自定义错误信息
func (r *StorePostRequest) Messages() map[string]string {
  return map[string]string{}
}
// 自定义字段名
func (r *StorePostRequest) Attributes() map[string]string {
  return map[string]string{}
}
// 数据预处理
func (r *StorePostRequest) PrepareForValidation(data validation.Data) {

}

然后校验:

func (r *PostController) Store(ctx http.Context) {
  var storePost requests.StorePostRequest
  errors, err := ctx.Request().ValidateRequest(&storePost)
}
點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消