Goravel ORM 新增模型关联,用 Golang 写关联也可以跟 Laravel 一样简单
2024-09-08 14:00:37
关于 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!
最新文章
- Python开发【第二章】:Python深浅拷贝剖析
- 在Windows上一键编译各种版本的Protobuf
- Fair Photography
- [React] React Fundamentals: First Component
- linux安装tomcat(转载:http://blog.csdn.net/zhuihunmiling/article/details/8977387)
- hdu1824-Let's go home:图论2-SAT
- hdoj 3062 Party(2-SAT)
- Java数据结构和算法(二)——数组
- 利用Eclipse中的Maven构建Web项目(二)
- 关闭Win10自动更新
- php函数形参传值与传引用
- TensorFlow中的设备管理——Device的创建与注册机制
- FTPService工具类
- 【新特性】JDK1.5
- vivado 创建PS工程
- docker 部署tomcat
- CMUSphinx Learn - Before you start
- Planar Shadow
- 丑数(UVa136)
- [CSS3] 二级下拉导航
热门文章
- 「SOL」Hamiltonian Cycle (AtCoder)
- 【STM32】NVIC嵌套中断向量控制器与外部中断
- Leetcode本地阅读器开发--01界面设计一
- 浏览器输入URL发生了什么:DNS解析、TCP握手、HTTP缓存、重定向、服务器状态码、渲染引擎和JS引擎互斥、渲染过程、浏览器进程、网络进程、渲染进程
- SQL 之 SQL server 中 遇到字段的值为null 遇到的坑
- 安装python及环境搭建
- AS3.0和php数据交互POST方式
- openEuler22.09初始化脚本
- 问题记录[ PPOME 修改子屏幕日期弹框,No changes to data, periods undone. Message no. 5A496 ]
- spring管理配置文件实现注入