我正在學習Revel並使用Validation包對輸入進行一些檢查。 我想看看是否已經存在一個DB中的「名稱」的記錄(我從用戶通過表單獲取輸入),如果真的返回錯誤,否則創建一個記錄。我能夠驗證(使用諸如Required,Maxlen等內置方法)字段並在HTML中顯示錯誤。但對於我的自定義檢查是添加一個自定義驗證程序到驗證包的方式去或有辦法我可以添加自定義鍵和錯誤的驗證上下文。我無法找到我可以如何將自定義鍵和消息添加到錯誤地圖。謝謝。表單輸入Revel的驗證
2
A
回答
2
陶醉的validators.Validator
界面看起來是這樣的:
type Validator interface {
IsSatisfied(interface{}) bool
DefaultMessage() string
}
而且*validation.Validation
有一個方法:
func (v *Validation) Check(obj interface{}, checks ...Validator) *ValidationResult
而且*validation.ValidationResult
有一個方法:
func (*ValidationResult) Message
把所有在一起:
type usernameChecker struct {}
func(u usernameChecker) IsSatisified(i interface{}) bool {
s, k := i.(string)
if !k {
return false
}
/* check if s exists in DB */
}
func(u usernameChecker) DefaultMessage() string {
return "username already in use"
}
而在你的應用程序:
func (c MyApp) SaveUser(username string) revel.Result {
c.Validation.Check(username, usernameChecker{}).Message("more specific or translated message in case of failure")
}
這如果不是最嚴重的設計驗證庫我見過一個。
相關問題
- 1. 驗證Magento表單輸入
- 2. php表單輸入驗證
- 3. Laravel 3驗證單個輸入表單
- 4. jQuery的輸入表單驗證
- 5. 如何驗證表單的輸入值
- 6. 在AngularJS中驗證表單的輸入
- 7. 手動輸入和導入輸入的角度表單驗證
- 8. 使用Javascript驗證輸入表單
- 9. 輸入,阻止整個表單驗證
- 10. CodeIgniter:驗證表單不重置輸入
- 11. Angularjs:表單驗證和輸入指令
- 12. 驗證'價格'(雙)表單輸入PHP
- 13. 驗證表單文本輸入
- 14. Jquery輸入表單默認值驗證
- 15. 使用jQuery輸入表單驗證
- 16. 表單輸入字段驗證模式
- 17. 如何驗證表單輸入和laravel
- 18. 如何驗證Symfony表單輸入MoneyType?
- 19. 驗證代碼輸入到表單
- 20. 驗證表單併發送未驗證的表單輸入與angularJS
- 21. jQuery表單驗證,表單輸入的名稱是這樣的[]
- 22. html表單和輸入沒有驗證w3c驗證程序
- 23. 表單驗證JS - 驗證名字輸入字段
- 24. 在表單驗證失敗時僅輸入一次驗證碼?
- 25. 動態表單輸入名稱的codeigniter表單驗證
- 26. PHP驗證輸入表格
- 27. javascript中的驗證表單,單獨的點擊輸入
- 28. 驗證輸入
- 29. 驗證輸入
- 30. 輸入驗證
您是否嘗試閱讀手冊? http://revel.github.io/manual/validation.html另外,考慮如何對默認驗證器進行編碼可能很有用:https://github.com/revel/revel/blob/df5d88dbece276012b4c7ab45a33a1047c1db108/validators.go# L15-L47最後,你想通過HTML表單驗證用戶輸入嗎?從你的描述來看,你似乎並不清楚你如何使用Revel的驗證功能。也許你把它用於錯誤的目的? – Brenden