Commit cb49be78 authored by astaxie's avatar astaxie

fix router Put and Delete method when post method with _method

parent 68d4c2c0
......@@ -575,7 +575,7 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
if requestPath == route.pattern {
runrouter = route.controllerType
findrouter = true
runMethod = p.getRunMethod(r.Method, route)
runMethod = p.getRunMethod(r.Method, context.Input.Query("_method"), route)
break
}
// pattern /admin url /admin 200 /admin/ 404
......@@ -618,7 +618,7 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
runrouter = route.controllerType
findrouter = true
context.Input.Params = params
runMethod = p.getRunMethod(r.Method, route)
runMethod = p.getRunMethod(r.Method, context.Input.Query("_method"), route)
break
}
}
......@@ -788,7 +788,7 @@ func (p *ControllerRegistor) getErrorHandler(errorCode string) func(rw http.Resp
return handler
}
func (p *ControllerRegistor) getRunMethod(method string, router *controllerInfo) string {
func (p *ControllerRegistor) getRunMethod(method, _method string, router *controllerInfo) string {
method = strings.ToLower(method)
if router.hasMethod {
if m, ok := router.methods[method]; ok {
......@@ -796,9 +796,21 @@ func (p *ControllerRegistor) getRunMethod(method string, router *controllerInfo)
} else if m, ok = router.methods["*"]; ok {
return m
} else {
if method == "POST" || strings.ToLower(_method) == "put" {
return "Put"
}
if method == "POST" || strings.ToLower(_method) == "delete" {
return "Delete"
}
return strings.Title(method)
}
} else {
if method == "POST" || strings.ToLower(_method) == "put" {
return "Put"
}
if method == "POST" || strings.ToLower(_method) == "delete" {
return "Delete"
}
return strings.Title(method)
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment