浏览 1465
扫码
model的struct必须有一个pk
Beego规定在models里面的struct必须有一个PK,如果没有的话,会提示
github.com/sunnygocms/managementCMS/models.SunnyUserAndGroup need a primary key field
这个是以bee -api 根据sunny_user_and_group这个表自动生成的为例来解释。
原生成的是:
package modelstype SunnyUserAndGroup struct {UserId int `orm:"column(user_id);"`UserGroupId int `orm:"column(user_group_id);"`}
明显是什么都不能做,我按照别的models修改了一下,于是就报了上面的错误,修改的文件如下:
package modelsimport ("github.com/astaxie/beego/orm")type SunnyUserAndGroup struct {UserId int `orm:"column(user_id);"`UserGroupId int `orm:"column(user_group_id);"`}func (t *SunnyUserAndGroup) TableName() string {return "sunny_user_and_group"}func init() {orm.RegisterModel(new(SunnyUserAndGroup))}//only insert onefunc AddSunnyUserAndGroup(m *SunnyUserAndGroup) (id int64, err error) {o := orm.NewOrm()id, err = o.Insert(m)return}
经过研究知道是因为Beego要求必须有一个主键,因为我原表里面是双主键,估计是bee没有自动生成好。其实修改起来也是非常方便的:
type SunnyUserAndGroup struct {UserId int `orm:"column(user_id);pk"` //此处加上pkUserGroupId int `orm:"column(user_group_id);"`}