06.Model封装公共方法
# 01.关于Model
- 如果我们的应用非常简单的话,我们可以在 Controller 里面处理常见的业务逻辑。
- 但是如果我们有一个功能想在多个控制器、或者多个模板里面复用的话
- 那么我们就可以把公共的功能单独抽取出来作为一个模块(Model)
- Model 是逐步抽象的过程,一般我们会在 Model里面封装一些公共的方法让不同 Controller 使用
- 也可以在 Model 中实现和数据库打交道。
# 02.Model 里面封装公共的方法
# 2.1 models下面新建tools.go
package models
import (
"time"
)
func UnixToDate(timestamp int) string {
t := time.Unix(int64(timestamp), 0)
return t.Format("2006-01-02 15:04:05")
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 2.2 控制器中引入使用models
package controllers
import (
"beegodemo02/models"
"fmt"
"github.com/astaxie/beego"
)
type UserController struct {
beego.Controller
}
func (this *UserController) UsersGet() {
unix := 1589898013
str := models.UnixToDate(unix)
fmt.Println(str) // 2020-05-19 22:20:13
this.Ctx.WriteString("index")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 2.3 注册为自定义模板函数
package main
import (
"beegodemo02/models"
_ "beegodemo02/routers"
"github.com/astaxie/beego"
)
func main() {
beego.AddFuncMap("UnixToDate", models.UnixToDate)
beego.Run()
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
上次更新: 2024/3/13 15:35:10