golang beego框架学习(五)

AndyYang| 阅读:1263 发表时间:2017-04-15 17:54:15 golang
摘要:本章节主要学习下beego 文章评论的添加、删除、展示以及文章分类的关联处理。

本章节主要学习下beego 文章评论的添加、删除、展示以及文章分类的关联处理。

controllers文件夹下添加reply.go,源码:
  1. package controllers
  2.  
  3. import (
  4. "github.com/astaxie/beego"
  5. "myapp/models"
  6. )
  7.  
  8. type ReplyController struct {
  9. beego.Controller
  10. }
  11.  
  12. func (this *ReplyController) Add() {
  13. tid := this.Input().Get("tid")
  14. err := models.AddReply(tid,
  15. this.Input().Get("nickname"), this.Input().Get("content"))
  16. if err != nil {
  17. beego.Error(err)
  18. }
  19.  
  20. this.Redirect("/topic/view/"+tid, 302)
  21. }
  22.  
  23. func (this *ReplyController) Delete() {
  24. if !checkAccount(this.Ctx) {
  25. return
  26. }
  27. tid := this.Input().Get("tid")
  28. err := models.DeleteReply(this.Input().Get("rid"))
  29. if err != nil {
  30. beego.Error(err)
  31. }
  32.  
  33. this.Redirect("/topic/view/"+tid, 302)
  34. }
models文件下models.go添加:
  1. func AddReply(tid, nickname, content string) error {
  2. tidNum, err := strconv.ParseInt(tid, 10, 64)
  3. if err != nil {
  4. return err
  5. }
  6.  
  7. reply := &Comment{
  8. Tid: tidNum,
  9. Name: nickname,
  10. Content: content,
  11. Created: time.Now(),
  12. }
  13. o := orm.NewOrm()
  14. _, err = o.Insert(reply)
  15. return err
  16. }
  17.  
  18. func GetAllReplies(tid string) (replies []*Comment, err error) {
  19. tidNum, err := strconv.ParseInt(tid, 10, 64)
  20. if err != nil {
  21. return nil, err
  22. }
  23.  
  24. replies = make([]*Comment, 0)
  25.  
  26. o := orm.NewOrm()
  27. qs := o.QueryTable("comment")
  28. _, err = qs.Filter("tid", tidNum).All(&replies)
  29. return replies, err
  30. }
  31.  
  32. func DeleteReply(rid string) error {
  33. ridNum, err := strconv.ParseInt(rid, 10, 64)
  34. if err != nil {
  35. return err
  36. }
  37.  
  38. o := orm.NewOrm()
  39.  
  40. reply := &Comment{Id: ridNum}
  41. _, err = o.Delete(reply)
  42. return err
  43. }
其他修改:
模板修改(添加评论、删除评论、以及分类展示等处理)
routers/router.go修改,添加回复的路由处理
controller/home.go修改,添加分类的读取,以及分类和文章的关联处理。

github:https://github.com/yangsir/beego_study

本文为AndyYang原创,转载请注明出处!
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想看点美女养养眼:猛戳>>朋友帮
如果您觉得皮了,是否想来点神吐槽:猛戳>>iPhone查询中

已有0条评论

昵称:
邮箱:
iPhone查询中 - bbs.ipcxz.com 朋友帮 - www.pengyb.cn iPhone查询中 - bbs.ipcxz.com
反馈
微信订阅号