目的 是把cmd 文件搞清爽
一 在controller文件夹下面再建立文件夹 比如newss,users
定义结构体 ,实例化 然后定义方法
回到 cmd.go
s.BindObject("/newss",newss.New()) #系统会自动批量绑定方法
二、分组路由 (把一些路由添加了一些前缀,和BindObject差不多,可以嵌套 比如 /group(/api) 可以嵌套 (/user))
然后再 controller 中注册方法usercontroller := user.New()
// 绑定user控制器中多个方法 s.BindObject("/user", usercontroller, "AddUser,UpdateUser")// 绑定单个方法 s.BindObjectMethod("/deluser", usercontroller, "DeleteUser")
func (s *Server) BindHandler(pattern string, handler interface{})
func(request *ghttp.Request)
func(ctx context.Context, BizRequest)(BizResponse, error)
在cmd中使用提前定义好的函数来进行注册 s.BindHandler("/world", handler)三、搞完后结果
1 cmd.go
s.Group("/", func(group *ghttp.RouterGroup) {
group.Middleware(ghttp.MiddlewareHandlerResponse)
group.Bind(
// controller.NewsClass, // 首页
// controller.Newss, // 首页
)
// 权限控制路由
group.Group("/news", func(group *ghttp.RouterGroup) {
// group.Middleware(service.Middleware().Auth)
group.Bind(
controller.NewsClass, // 首页
controller.Newss, // 首页文件
)
})
})
2\contreller (这里注意controller方法首字母要大写 路由才会识别)
package controllerimport ("50cmsgo/internal/dao""github.com/gogf/gf/v2/frame/g""github.com/gogf/gf/v2/net/ghttp")var NewsClass = cNewsClass{}type cNewsClass struct{}// 混编一体Classlistfunc (c *cNewsClass) Class_list(r *ghttp.Request) {// r.Response.Writeln("添加用户")md := dao.DboLClasss.Ctx(r.Context())classs, err := md.All()if err == nil {r.Response.WriteTpl("news/class_list.html", g.Map{"header": "This is header","info": classs,})}}