models->article.go
package models

type Article struct {
	Id     int
	Title  string
	CateId int //外键
	State  int
	// ArticleCate ArticleCate `gorm:"foreignKey:CateId"`
}

//表示配置操作数据库的表名称
func (Article) TableName() string {
	return "article"
}
 models->articleCate.go 
package models

//foreignKey外键  如果是表名称加上Id的话默认也可以不配置   如果不是我们需要通过foreignKey配置外键
//references表示的是主键    默认就是Id   如果是Id的话可以不配置
type ArticleCate struct {
	Id      int //主键
	Title   string
	State   int
	Article []Article `gorm:"foreignKey:CateId;references:Id"`
}

//表示配置操作数据库的表名称
func (ArticleCate) TableName() string {
	return "article_cate"
}

  controllers->admin->articleController.go

package admin

import (
	"gindemo16/models"
	"net/http"

	"github.com/gin-gonic/gin"
)

type ArticleController struct {
	BaseController
}

func (con ArticleController) Index(c *gin.Context) {

	//获取所有的文章
	// articleList := []models.Article{}
	// models.DB.Find(&articleList)
	// c.JSON(200, gin.H{
	// 	"result": articleList,
	// })

	// 查询文章 获取文章对应的分类
	// articleList := []models.Article{}
	// models.DB.Preload("ArticleCate").Find(&articleList)
	// c.JSON(200, gin.H{
	// 	"result": articleList,
	// })

	//获取所有的分类
	articleCateList := []models.ArticleCate{}
	models.DB.Preload("Article").Find(&articleCateList)
	c.JSON(200, gin.H{
		"result": articleCateList,
	})

}
func (con ArticleController) Add(c *gin.Context) {
	c.String(http.StatusOK, "-add--文章-")
}
func (con ArticleController) Edit(c *gin.Context) {
	c.String(http.StatusOK, "-Edit---文章---")
}

  

posted on 2022-10-04 08:29  KOA2后端  阅读(766)  评论(0)    收藏  举报