我有一個帖子的續集模型。我希望您可以檢索回覆到的帖子,以及帖子作爲回覆的帖子。如何在Sequelize模型上實現'replyingTo'和'回覆'關聯
理論上,這只是需要一個外鍵,一個「replyId」字段,所以你有表:
----------------------
|id|post |replyId|
----------------------
|1 |post one |null |
|2 |replying |1 |
|3 |replying |1 |
----------------------
所以得到的帖子回覆1
,你看的1
replyId
,
和得到什麼張貼3
的回答,你看的1
id
的sequelize關係是:
Post.hasMany(models.Post, { as: 'Replies' })
Post.hasOne(models.Post, { as: 'ReplyingTo' })
然後添加帖子到數據庫時:
//Having created `post`
post.setReplyingTo(replyingToPost)
//Having found `replyingToPost`
replyingToPost.addReplies(post)
但無論我嘗試有一些類型的錯誤,例如像在上面的表,它是null
你ID 3
和sequelize沒有按「T返回任何回覆的ID 2
感謝這工作完美!我猜這不太符合sequelize的精神,但我直接用replyingTo用戶名爲模型添加了一個字段,所以你不必每次都運行getReplyingTo() – user2521439