golang beego框架学习(六)

摘要:本章节主要学习下beego 文章评论数及最后评论时间展示、分类对应文章数,以及文章添加标签处理。

本章节主要学习下beego 文章评论数及最后评论时间展示、分类对应文章数,以及文章添加标签处理。

1、文章评论数及最后评论时间展示:
a、修改models/models.go的AddReply方法,底部增加:

topic := &Topic{Id: tidNum}
if o.Read(topic) == nil {
    topic.ReplyTime = time.Now()
    topic.ReplyCount++
    _, err = o.Update(topic)
}

return err

b、修改models/models.go的DeleteReply方法,底部增加:

replies := make([]*Comment, 0)
qs := o.QueryTable("comment")
_, err = qs.Filter("tid", tidNum).OrderBy("-created").All(&replies)
if err != nil {
    return err
}

topic := &Topic{Id: tidNum}
if o.Read(topic) == nil {
    topic.ReplyTime = replies[0].Created
    topic.ReplyCount = int64(len(replies))
    _, err = o.Update(topic)
}
return err

c、模板修改,就不细说。

2、分类对应文章数修改:
a、修改models/models.go的AddTopic方法,底部增加:

cate := new(Category)
qs := o.QueryTable("category")
err = qs.Filter("title", category).One(cate)
if err == nil {
    // 如果不存在我们就直接忽略,只当分类存在时进行更新
    cate.TopicCount++
    _, err = o.Update(cate)
}

return err

b、修改models/models.go的ModifyTopic方法,底部增加:

if len(oldCate) > 0 {
    cate := new(Category)
    qs := o.QueryTable("category")
    err = qs.Filter("title", oldCate).One(cate)
    if err == nil {
        cate.TopicCount--
        _, err = o.Update(cate)
    }
}

cate := new(Category)
qs := o.QueryTable("category")
err = qs.Filter("title", category).One(cate)
if err == nil {
    cate.TopicCount++
    _, err = o.Update(cate)
}

return nil

c、模板修改,不细说。

3、文章添加标签
a、controllers下topic.go修改,加多lable参数传递,分别是models.AddTopic和models.ModifyTopic方法。

b、models下的models.go修改:
AddTopic方法:
lable = “$” + strings.Join(strings.Split(lable, ” “), “#$”) + “#”

GetTopic方法:
topic.Lables = strings.Replace(strings.Replace(
        topic.Lables, “#”, ” “, -1), “$”, “”, -1)

ModifyTopic方法:
lable = “$” + strings.Join(strings.Split(lable, ” “), “#$”) + “#”

GetAllTopics方法:
if len(lable) > 0 {
    qs = qs.Filter(“lables__contains”, “$”+lable+”#”)
}

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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98495.html

(0)
上一篇 2021年8月21日
下一篇 2021年8月21日

相关推荐

发表回复

登录后才能评论