Beego文章分页功能实现

1.models层

//分页
func ReadTopicByPage(isDesc bool,topics *[]Topic,pageNow int, pageSize int) (*[]Topic, error){
	sql:="select * from topic  limit ?,?"
	_,err:=db.Raw(sql,(pageNow-1)*pageSize,pageSize).QueryRows(topics)
	return topics,err
}
//获取pageCount
func GetPageCount(pageSize int) int{
	var rowCount int
	sql:="select count(*) from topic "
	err:=db.Raw(sql).QueryRow(&rowCount)
	if err!=nil{
		log.Fatal(err)
	}
	if rowCount%pageSize==0{
		return rowCount/pageSize
	}else{
		return (rowCount/pageSize)+1
	}
}

2.controller层

pageSize:=3
	pageNow,err:=c.GetInt("pageNow")
	if err!=nil{
	//log.Fatal(err)
		pageNow=1
	}
	var topics []models.Topic
	models.ReadTopicByPage(true,&topics,pageNow,pageSize)
	/*for i,_:=range topics{
		fmt.Println(topics[i].Id)
	}*/
	pageCount:=models.GetPageCount(pageSize)
	//fmt.Println("pageCount:",pageCount)
	//fmt.Println(topics1)
	c.Data["pageCount"]=pageCount
	c.Data["pageNow"]=pageNow
	c.Data["topics"]=topics
	c.TplName = "home.html"

3.view层

   <div class="text-center">
        {{if gt .pageNow 1}}
            <a href="http://127.0.0.1:8081/?pageNow={{Add .pageNow -1}}">上一页</a>
        {{else}}
            <span>上一页</span>

        {{end}}

        {{if lt .pageNow .pageCount}}
            <a href="http://127.0.0.1:8081/?pageNow={{Add .pageNow 1}}">下一页</a>
        {{else}}
            <span>下一页</span>

        {{end}}
        </div>

其中Add为模板函数

func Add(a int,b int) int{
	return a+b
}

Beego.run之前添加函数映射

beego.AddFuncMap("Add",views.Add)
beego.Run()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值