用户文章添加分页
func GetByUserID(uid string) ([]Article, error) {
var articles []Article
if err := model.DB.Where("user_id = ?", uid).Preload("User").Find(&articles).Error; err != nil {
return articles, err
}
return articles, nil
}
把之前的方法修改为如下
// GetByUserID 获取全部文章
func GetByUserID(uid string, r *http.Request, perPage int) ([]Article, pagination.ViewData, error) {
// 1. 初始化分页实例
db := model.DB.Model(Article{}).Where("user_id = ?", uid).Order("created_at desc")
_pager := pagination.New(r, db, route.Name2URL("home"), perPage)
// 2. 获取视图数据
viewData := _pager.Paging()
// 3. 获取数据
var articles []Article
_pager.Results(&articles)
return articles, viewData, nil
}
users_controller控制器里的show方法中获取文章增加分页
articles, pagerData, err := article.GetByUserID(_user.GetStringID(), r, 3)
if err != nil {
logger.LogError(err)
w.WriteHeader(http.StatusInternalServerError)
fmt.Fprint(w, "500 服务器内部错误")
} else {
view.Render(w, view.D{
"Articles": articles,
"PagerData": pagerData,
}, "articles.index", "articles._article_meta")
}