2017-12-09 15 views
0
type Users struct { 
    Id  int `orm:"pk;auto"` 
    Username string 
    Password string 
    Salt  string 
    Email string `orm:"unique"` 
} 

type Post struct { 
    Id   int `orm:"pk;auto"` 
    Users  *Users `orm:"rel(fk)"` 
    Author  string 
    Title  string `form:"title,text,Title:" valid:"MinSize(5); MaxSize(20)"` 
    Description string `form:textarea` 
    Date  time.Time `orm:"auto_now_add;type(datetime)"` 
} 

Usersに値を割り当てようとしていますが、これは外部キーです。ログインしているユーザーIDを割り当てたい。UsersのユーザーIDをPostの構造体IDのユーザーIDに割り当てる方法。ユーザーIDを外部キーに割り当てる方法

o := orm.NewOrm() 
o.Using("default") 
post := models.Post{} 
users := models.Users{} 

if this.Ctx.Input.Method() == "POST" { 
    inputs := this.Input() 

    post.Author = sess.(string) 
    post.Title = inputs.Get("title") 
    post.Description = inputs.Get("description") 
    post.Date = time.Now() 
} 
+0

誰か助けてください –

答えて

0

まず、あなたの質問に答える:

post.Date = time.Now() 
// This is your last line 
// Up until now all good 
post.Users = &users // Actually the naming is bad, should be post.User = user 
o.Insert(users) // First create user 
o.Insert(post) // Then insert post 

これはビーゴORMが提供する基本的な例と非常によく似ています。現実の世界ではhttps://beego.me/docs/mvc/model/orm.md

、あなたはわかりますが、ほとんどの時間そのあなたはユーザーがいて、一度だけ作成したいだけです。だから、最初にスイッチするよInsertReadOrCreatehttps://beego.me/docs/mvc/model/object.md#readorcreate

私の経験から、GoとMVCとORMフレームワークを使用することは悪い考えです。

+0

私はそれを試みましたが、私はユーザーをPost.Usersに割り当てることができません。 Model.usersを* model.Usersへの代入として使用することはできません。 –

+0

そして私がposts.Usersに保存しようとしているものは、現在ログインしているユーザのIDです –

+0

あなたはinitをどのように気付かず、 'post.Users =&users'にしてください。私の答えを更新しました。 –

関連する問題