Skip to content

Gii 是一个为了协助快速开发 beego 项目而创建的项目,通过 Gii 您可以很容易地为你已存在的数据表在你指定的目录创建 Model 以及 Controller 。它基于 beego 为你写好created ,update,put,已经 delete 等操作方法。

Notifications You must be signed in to change notification settings

1920853199/go-gii

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Gii beego 自动化代码生成

1.介绍

Gii 是一个为了协助快速开发 beego 项目而创建的项目,通过 Gii 您可以很容易地为你已存在的数据表在你指定的目录创建 Model 以及 Controller 。它基于 beego 为你写好created ,update,put,已及 delete 等操作方法。

注意不能完全依靠 Gii 为你生成的东西,你需要检查一下再进行使用。

2.安装

您可以通过如下的方式安装 bee 工具:

go get github.com/1920853199/go-gii 

3.使用

package main

import (
	"github.com/1920853199/go-gii"
)

func main() {

	source := "xxxx:xxxxxxxx@tcp(127.0.0.1)/abc"
	gii.Column(source,"article","")

	//beego.Run()
}

参数介绍

  1. 第一个参数 source :数据库连接信息
  2. 第二个参数 name 数据表名称
  3. 第三个参数 controllerPath 是指定 Controller 生成的路径

直接执行这个文件后会在 beego 项目的目录的 models下生成对应数据表的 model,在 controller 下的指定路径生成控制器

结果:

Controller article.go代码

package home

import (
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/orm"
	"github.com/astaxie/beego/validation"
)

type ArticleController struct {
	beego.Controller
}

func (c *ArticleController) List() {


	limit, _ := beego.AppConfig.Int64("limit") // 一页的数量
	page, _ := c.GetInt64("page", 1)           // 页数
	offset := (page - 1) * limit               // 偏移量

	o := orm.NewOrm()
	obj := new(models.Article)

	var data []*models.Article
	qs := o.QueryTable(obj)

	// 获取数据
	_, err := qs.OrderBy("-id").Limit(limit).Offset(offset).All(&data)
	if err != nil {
		c.Abort("404")
	}


	/*c.Data["json"]= &data
	c.ServeJSON()
	c.StopRun()*/


	// 统计
	count, err := qs.Count()
	if err != nil {
		c.Abort("404")
	}

	c.Data["Data"] = &data
	c.Data["Count"] = count
	c.Data["Limit"] = limit
	c.Data["Page"] = page
}

func (c *ArticleController) Put() {
	id, err := c.GetInt("id", 0)

	if id == 0 {
		c.Abort("404")
	}

	// 基础数据
	o := orm.NewOrm()
	obj := new(models.Article)
	var data []*models.Article
	qs := o.QueryTable(obj)
	err = qs.Filter("id", id).One(&data)
	if err != nil {
		c.Abort("404")
	}
	c.Data["Data"] = data[0]

}

func (c *ArticleController) Update() {

	id, _ := c.GetInt("id", 0)


	/*c.Data["json"] = c.Input()
	c.ServeJSON()
	c.StopRun()*/

	response := make(map[string]interface{})

	o := orm.NewOrm()

	obj := models.Article{Id: id}
	if o.Read(&obj) == nil {
		// 需要补充修改的信息
		// 如 :obj.Reply = reply

		valid := validation.Validation{}

		// 补充需要验证的信息
		// 如:valid.Required(message.Reply, "Reply")

		if valid.HasErrors() {
			// 如果有错误信息

About

Gii 是一个为了协助快速开发 beego 项目而创建的项目,通过 Gii 您可以很容易地为你已存在的数据表在你指定的目录创建 Model 以及 Controller 。它基于 beego 为你写好created ,update,put,已经 delete 等操作方法。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages