我目前正在做一个项目,现在我有一些基本的 Javascript
blah.map(function(lBlah) {});
blah
从 ajax 请求生成到数据库,该数据库返回对象数组(或切片,如果您愿意)
唯一的问题是我收到一个 JS 错误:cannot read property 'map' of null
这是因为如果我的one-to-many
关联当时没有关联的值,它只会生成该字段nil
而不是空切片,所以当我json.Marshal
发送空值而不是空值时,[]
它会修复我所有的错误,目前必须覆盖struct
从数据库返回的每个错误并检查 nil 值然后make([]blah, 0)
很烦人并且看起来很乱。有没有更简单的方法来实现这一点?是否可以设置默认值json:"default:[]"
或其他内容?
// ForumContainer is a table in the database
type ForumContainer struct {
gorm.Model
ContainerName string `sql:"not null;unique"`
AccessLevel int `sql:"not null;default:0"`
MainThreads []ForumMainThreads
}
// ForumMainThreads is the table in the database
type ForumMainThreads struct {
gorm.Model
ForumContainerID int `sql:"index"`
ThreadName string `sql:"not null;unique"`
Threads int `sql:"not null;default:0"`
Replies int `sql:"not null;default:0"`
AccessLevel int `sql:"not null;default:0"`
Posts []ForumMainThreadsPosts
}
// ForumMainThreadsPosts is a table in the database
type ForumMainThreadsPosts struct {
gorm.Model
UserID int `sql:"index"`
ForumMainThreadsID int `sql:"index"`
Title string `sql:"not null;unique"`
Body string `sql:"type:text;not null"`
Sticky bool `sql:"not null;default:0"`
Views int `sql:"not null;default:0"`
ReplyCount int `sql:"not null;default:0"`
Replies []ForumMainPostsReplies
}
// ForumMainPostsReplies is a table in the database
type ForumMainPostsReplies struct {
gorm.Model
ForumMainThreadsPostsID int `sql:"index"`
UserID int `sql:"index"`
Body string
}
查询通过以下方式完成:
db.Preload("MainThreads").Find(&forumContainers)