package cabana_test import "git.golem15.com/golem15/summercms/modules/cabana" // Comment is one comment of a post: a hasMany child that points at its post // through the nullable post_id column. type Comment struct { ID uint `gorm:"column:id;primaryKey"` PostID *uint `gorm:"column:post_id"` Author string `gorm:"column:author"` Body string `gorm:"column:body"` } func (Comment) TableName() string { return "acme_blog_comments" } // AdminRelationContracts binds the posts form's relation managers to their // models; the framework never guesses a table or column. func (PostsController) AdminRelationContracts() []cabana.RelationContract { return []cabana.RelationContract{{ Name: "comments", Kind: cabana.RelationHasMany, NewRelated: func() any { return &Comment{} }, ForeignKey: "post_id", Columns: map[string]string{"author": "author", "body": "body"}, }} }