yaml 1.yaml介紹 YAML是 "YAML Ain't a Markup Language" (YAML不是一種標記語言)的遞歸縮寫。在開發這種語言時,YAML的意思其實是:"Yet Another Markup Language"(仍是一種標記語言),是為了強調這種語言以數據為中心,而不是 ...
關於 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!