关于 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!

最新文章

  1. Python开发【第二章】:Python深浅拷贝剖析
  2. 在Windows上一键编译各种版本的Protobuf
  3. Fair Photography
  4. [React] React Fundamentals: First Component
  5. linux安装tomcat(转载:http://blog.csdn.net/zhuihunmiling/article/details/8977387)
  6. hdu1824-Let's go home:图论2-SAT
  7. hdoj 3062 Party(2-SAT)
  8. Java数据结构和算法(二)——数组
  9. 利用Eclipse中的Maven构建Web项目(二)
  10. 关闭Win10自动更新
  11. php函数形参传值与传引用
  12. TensorFlow中的设备管理——Device的创建与注册机制
  13. FTPService工具类
  14. 【新特性】JDK1.5
  15. vivado 创建PS工程
  16. docker 部署tomcat
  17. CMUSphinx Learn - Before you start
  18. Planar Shadow
  19. 丑数(UVa136)
  20. [CSS3] 二级下拉导航

热门文章

  1. 「SOL」Hamiltonian Cycle (AtCoder)
  2. 【STM32】NVIC嵌套中断向量控制器与外部中断
  3. Leetcode本地阅读器开发--01界面设计一
  4. 浏览器输入URL发生了什么:DNS解析、TCP握手、HTTP缓存、重定向、服务器状态码、渲染引擎和JS引擎互斥、渲染过程、浏览器进程、网络进程、渲染进程
  5. SQL 之 SQL server 中 遇到字段的值为null 遇到的坑
  6. 安装python及环境搭建
  7. AS3.0和php数据交互POST方式
  8. openEuler22.09初始化脚本
  9. 问题记录[ PPOME 修改子屏幕日期弹框,No changes to data, periods undone. Message no. 5A496 ]
  10. spring管理配置文件实现注入