快速入门
[[toc]]
介绍
Goravel 路由模块可以使用 facades.DB 进行操作,facades.DB 是知名 ORM 框架 go-gorm/gorm 的一个实例,使用方法与 go-gorm/gorm 完全一致。
每一个数据表都对应有一个「模型」进行交互,模型文件保存在 app/models 文件夹中。
在开始之前,请在 .env 文件中配置数据库链接信息,并确认 config/database.go 的默认配置。
模型定义
可以根据框架自带的模型文件 app/models/user.go 创建自定义模型。在 app/models/user.go 文件中 struct 嵌套了 orm.Model 与 orm.SoftDeletes 两个框架自带结构体,他们分别定义了 id, created_at //创建时间, updated_at //更新时间 与 deleted_at //软删除,可以直接使用。
模型约定
- 模型使用大驼峰进行命名;
- 使用模型的复数形式「蛇形命名」来作为表名;
查询
facades.DB.First(&user, 10)// SELECT * FROM users WHERE id = 10;facades.DB.First(&user, "10")// SELECT * FROM users WHERE id = 10;facades.DB.Find(&users, []int{1,2,3})// SELECT * FROM users WHERE id IN (1,2,3);
创建
user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}result := facades.DB.Create(&user)
更新
facades.DB.First(&user)user.Name = "jinzhu 2"user.Age = 100facades.DB.Save(&user)// UPDATE users SET name='jinzhu 2', age=100, birthday='2016-01-01', updated_at = '2013-11-17 21:34:10' WHERE id=111facades.DB.Model(&User{}).Where("active = ?", true).Update("name", "hello")// UPDATE users SET name='hello', updated_at='2013-11-17 21:34:10' WHERE active=true;facades.DB.Model(&user).Updates(User{Name: "hello", Age: 18, Active: false})// UPDATE users SET name='hello', age=18, updated_at = '2013-11-17 21:34:10' WHERE id = 111;
删除
facades.DB.Delete(&email)// DELETE from emails where id = 10;facades.DB.Where("name = ?", "jinzhu").Delete(&email)// DELETE from emails where id = 10 AND name = "jinzhu";facades.DB.Delete(&User{}, 10)// DELETE FROM users WHERE id = 10;
更多使用方法
详见 go-gorm/gorm
