mirror of
https://github.com/astaxie/beego.git
synced 2024-11-22 19:10:54 +00:00
Merge pull request #971 from athurg/get_request_params_with_default
Support default value for controller’s params get
This commit is contained in:
commit
0e1a0049d1
133
controller.go
133
controller.go
@ -363,67 +363,144 @@ func (c *Controller) ParseForm(obj interface{}) error {
|
|||||||
return ParseForm(c.Input(), obj)
|
return ParseForm(c.Input(), obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetString returns the input value by key string.
|
// GetString returns the input value by key string or the default value while it's present and input is blank
|
||||||
func (c *Controller) GetString(key string) string {
|
func (c *Controller) GetString(key string, def ...string) string {
|
||||||
return c.Ctx.Input.Query(key)
|
var defv string
|
||||||
|
if len(def) > 0 {
|
||||||
|
defv = def[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if v := c.Ctx.Input.Query(key); v != "" {
|
||||||
|
return v
|
||||||
|
} else {
|
||||||
|
return defv
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetStrings returns the input string slice by key string.
|
// GetStrings returns the input string slice by key string or the default value while it's present and input is blank
|
||||||
// it's designed for multi-value input field such as checkbox(input[type=checkbox]), multi-selection.
|
// it's designed for multi-value input field such as checkbox(input[type=checkbox]), multi-selection.
|
||||||
func (c *Controller) GetStrings(key string) []string {
|
func (c *Controller) GetStrings(key string, def ...[]string) []string {
|
||||||
|
var defv []string
|
||||||
|
if len(def) > 0 {
|
||||||
|
defv = def[0]
|
||||||
|
}
|
||||||
|
|
||||||
f := c.Input()
|
f := c.Input()
|
||||||
if f == nil {
|
if f == nil {
|
||||||
return []string{}
|
return defv
|
||||||
}
|
}
|
||||||
|
|
||||||
vs := f[key]
|
vs := f[key]
|
||||||
if len(vs) > 0 {
|
if len(vs) > 0 {
|
||||||
return vs
|
return vs
|
||||||
|
} else {
|
||||||
|
return defv
|
||||||
}
|
}
|
||||||
return []string{}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetInt returns input as an int
|
// GetInt returns input as an int or the default value while it's present and input is blank
|
||||||
func (c *Controller) GetInt(key string) (int, error) {
|
func (c *Controller) GetInt(key string, def ...int) (int, error) {
|
||||||
return strconv.Atoi(c.Ctx.Input.Query(key))
|
var defv int
|
||||||
|
if len(def) > 0 {
|
||||||
|
defv = def[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if strv := c.Ctx.Input.Query(key); strv != "" {
|
||||||
|
return strconv.Atoi(strv)
|
||||||
|
} else {
|
||||||
|
return defv, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetInt8 return input as an int8
|
// GetInt8 return input as an int8 or the default value while it's present and input is blank
|
||||||
func (c *Controller) GetInt8(key string) (int8, error) {
|
func (c *Controller) GetInt8(key string, def ...int8) (int8, error) {
|
||||||
i64, err := strconv.ParseInt(c.Ctx.Input.Query(key), 10, 8)
|
var defv int8
|
||||||
|
if len(def) > 0 {
|
||||||
|
defv = def[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if strv := c.Ctx.Input.Query(key); strv != "" {
|
||||||
|
i64, err := strconv.ParseInt(strv, 10, 8)
|
||||||
i8 := int8(i64)
|
i8 := int8(i64)
|
||||||
|
|
||||||
return i8, err
|
return i8, err
|
||||||
|
} else {
|
||||||
|
return defv, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetInt16 returns input as an int16
|
// GetInt16 returns input as an int16 or the default value while it's present and input is blank
|
||||||
func (c *Controller) GetInt16(key string) (int16, error) {
|
func (c *Controller) GetInt16(key string, def ...int16) (int16, error) {
|
||||||
i64, err := strconv.ParseInt(c.Ctx.Input.Query(key), 10, 16)
|
var defv int16
|
||||||
|
if len(def) > 0 {
|
||||||
|
defv = def[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if strv := c.Ctx.Input.Query(key); strv != "" {
|
||||||
|
i64, err := strconv.ParseInt(strv, 10, 16)
|
||||||
i16 := int16(i64)
|
i16 := int16(i64)
|
||||||
|
|
||||||
return i16, err
|
return i16, err
|
||||||
|
} else {
|
||||||
|
return defv, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetInt32 returns input as an int32
|
// GetInt32 returns input as an int32 or the default value while it's present and input is blank
|
||||||
func (c *Controller) GetInt32(key string) (int32, error) {
|
func (c *Controller) GetInt32(key string, def ...int32) (int32, error) {
|
||||||
|
var defv int32
|
||||||
|
if len(def) > 0 {
|
||||||
|
defv = def[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if strv := c.Ctx.Input.Query(key); strv != "" {
|
||||||
i64, err := strconv.ParseInt(c.Ctx.Input.Query(key), 10, 32)
|
i64, err := strconv.ParseInt(c.Ctx.Input.Query(key), 10, 32)
|
||||||
i32 := int32(i64)
|
i32 := int32(i64)
|
||||||
|
|
||||||
return i32, err
|
return i32, err
|
||||||
|
} else {
|
||||||
|
return defv, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetInt64 returns input value as int64.
|
// GetInt64 returns input value as int64 or the default value while it's present and input is blank.
|
||||||
func (c *Controller) GetInt64(key string) (int64, error) {
|
func (c *Controller) GetInt64(key string, def ...int64) (int64, error) {
|
||||||
return strconv.ParseInt(c.Ctx.Input.Query(key), 10, 64)
|
var defv int64
|
||||||
|
if len(def) > 0 {
|
||||||
|
defv = def[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if strv := c.Ctx.Input.Query(key); strv != "" {
|
||||||
|
return strconv.ParseInt(strv, 10, 64)
|
||||||
|
} else {
|
||||||
|
return defv, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetBool returns input value as bool.
|
// GetBool returns input value as bool or the default value while it's present and input is blank.
|
||||||
func (c *Controller) GetBool(key string) (bool, error) {
|
func (c *Controller) GetBool(key string, def ...bool) (bool, error) {
|
||||||
return strconv.ParseBool(c.Ctx.Input.Query(key))
|
var defv bool
|
||||||
|
if len(def) > 0 {
|
||||||
|
defv = def[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if strv := c.Ctx.Input.Query(key); strv != "" {
|
||||||
|
return strconv.ParseBool(strv)
|
||||||
|
} else {
|
||||||
|
return defv, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetFloat returns input value as float64.
|
// GetFloat returns input value as float64 or the default value while it's present and input is blank.
|
||||||
func (c *Controller) GetFloat(key string) (float64, error) {
|
func (c *Controller) GetFloat(key string, def ...float64) (float64, error) {
|
||||||
|
var defv float64
|
||||||
|
if len(def) > 0 {
|
||||||
|
defv = def[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
if strv := c.Ctx.Input.Query(key); strv != "" {
|
||||||
return strconv.ParseFloat(c.Ctx.Input.Query(key), 64)
|
return strconv.ParseFloat(c.Ctx.Input.Query(key), 64)
|
||||||
|
} else {
|
||||||
|
return defv, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetFile returns the file data in file upload field named as key.
|
// GetFile returns the file data in file upload field named as key.
|
||||||
|
Loading…
Reference in New Issue
Block a user