關于 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!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/547129.html
標籤:其他
上一篇:day05-2-yaml
下一篇:68.C++中的const
