關於 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!
本作品採用《CC 協議》,轉載必須註明作者和本文連結