Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单
关于 Goravel
Goravel 是一个功能完备、具有良好扩展能力的 Web 应用程序框架。作为一个起始脚手架帮助 Golang 开发者快速构建自己的应用。框架风格与 Laravel 保持一致,让 PHPer 不用学习新的框架,也可以愉快的玩转 Golang!
ORM 模块上新「模型关联」,好用的飞起,有码有真相!
定义模型
一个用户可以发布多篇文章
type User struct {
orm.Model
Name string
Posts []*Post
}
type Post struct {
orm.Model
UserID uint
Name string
}
查找(同时预加载关联模型)
var user models.User
facades.Orm.Query().With("Post").Find(&user)
// 预加载多个关联模型(嵌套预加载)
facades.Orm.Query().With("Post").With("Phone.Contact").Find(&user)
// 为预加载添加约束
facades.Orm.Query().With("Post", "name = ?", "author").Find(&user)
facades.Orm.Query().With("Post", func(query orm.Query) orm.Query {
return query.Where("name = ?", "author")
}).Find(&book)
延迟预加载
var user models.User
facades.Orm.Query().Find(&user)
facades.Orm.Query().Load(&user, "Post")
// 为预加载添加约束
facades.Orm.Query().Load(&book, "Post", "name = ?", "author").Find(&book)
facades.Orm.Query().Load(&book, "Post", func(query orm.Query) orm.Query {
return query.Where("name = ?", "author")
}).Find(&book)
创建(同时创建关联模型)
user := User{Name: "user", Post: &Post{Name: "post"}}
// 创建 User 的同时创建所有子关联
facades.Orm.Query().Select(orm.Associations).Create(&user)
更多使用细节请 查看文档,Welcome Star, PR and Issues!
Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单
Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单
Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单
Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单
Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单
Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单
Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单
Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单
Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单