标签: beego

如何为在golang中具有一个公共字段的不同结构添加一种方法

我正在为我的应用程序使用 beego/orm。这里我有 2 个模型

type ModelA struct {
    Guid string `orm:"pk"`
    FiledA string
}

type ModelB struct {
    Guid string `orm:"pk"`
    FiledB string
}
Run Code Online (Sandbox Code Playgroud)

我需要Save()为每个结构添加一个方法。通常,我可以创建一个Base结构并将其混合到ModelAand 中ModelB,但是 orm 不起作用。

有没有更好的解决办法?

编辑1:Save()在此处提供代码以使问题更清楚

func (this *ModelA) Save() error {
    o := orm.NewOrm()
    guid := guidlib.Generate()
    this.Guid = guid
    _, err := o.Insert(this)
    return err
}

func (this *ModelB) Save() error {
    o := orm.NewOrm()
    guid := guidlib.Generate()
    this.Guid = guid
    _, err := …
Run Code Online (Sandbox Code Playgroud)

go beego

3
推荐指数
1
解决办法
3551
查看次数

Beego控制器中的JSON响应

我是一个尝试在路线上获得JSON响应的新手.

我有一个如此定义的控制器.

package controllers

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

type ErrorController struct {
    beego.Controller
}

type ErrorJson struct {
    s string
    d string
}

func (this *ErrorController) Get() {

    var responseJson ErrorJson
    responseJson = ErrorJson{
        s: "asdf",
        d: "qwer",
    }

    this.Data["json"] = responseJson
    this.ServeJson()
}
Run Code Online (Sandbox Code Playgroud)

我的路由器定义为

beego.Router("/api", &controllers.ErrorController{})
Run Code Online (Sandbox Code Playgroud)

当我访问路径时,我得到一个没有任何属性的Empty JSON对象.

{}
Run Code Online (Sandbox Code Playgroud)

如果我用字符串替换json结构,我会得到一个响应.所以beego知道控制器和方法.

this.Data["json"] = "Hello World"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

json struct go beego

3
推荐指数
1
解决办法
3541
查看次数

无法使用 golang 在 postgres 中更新时间戳和时区

我在我的应用程序中使用 golang 和 postgreSQL 版本 9.5.5。我使用“github.com/lib/pq”作为我的数据库驱动程序来连接到数据库。我的字段之一具有带时区的时间戳类型。我想更新到当前时间。所以我使用了以下代码:

注意:我使用 beego 作为我的框架并使用 orm 来计算我的查询。

_, err := o.Raw("UPDATE leave SET resultdate=? WHERE leaveid=?",  time.Now(), leaveResult.LeaveId).Exec()
Run Code Online (Sandbox Code Playgroud)

当我执行此操作时,我收到以下错误:

"pq: invalid input syntax for type timestamp with time zone: \"09:24:29\""
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助。

postgresql go beego

3
推荐指数
1
解决办法
3977
查看次数

Beego ORM MySQL:网络“...”的默认地址未知

我的数据库链接是域名而不是IP地址,我没有使用IP地址。下面是我的配置。

orm.RegisterDataBase("default", "mysql", "root:root@*******.aliyuncs.com:3308/dbname?charset=utf8")
Run Code Online (Sandbox Code Playgroud)

错误信息?

注册 db Ping default,网络 '***.mysql.rds.aliyuncs.com:3308' unknown 的默认地址必须有一个名为的注册数据库别名default

mysql orm go beego

3
推荐指数
1
解决办法
1928
查看次数

Beego - 创建模型表单和ORM

我使用以下代码创建了一个模型:

type UserProfile struct {
    Id                  int             `orm:"auto"`
    Name                string          `orm:"size(100)"`
    Email               string          `orm:"size(100)"`
    Type                string          `orm:"size(30)"`
    Admin               bool
    Car                 []*Car          `orm:"reverse(many)"`
}
Run Code Online (Sandbox Code Playgroud)

有没有办法直接使用这种结构渲染表格?我认为需要考虑valid:required验证,但我们如何控制表单渲染.

model-view-controller go beego

2
推荐指数
1
解决办法
791
查看次数

MySQL 的位类型映射到哪个 Go 类型?

我之前用过Java,所以数据库表中有些列的类型是bit(1). 但是现在我想用 beego 来重建我的项目,我不想改变我的数据库表(需要做很多)。我在我的项目中使用 beego 的 orm。那么我应该使用哪种 Go 类型?

像这样的表和删除的列有问题:

+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| id           | varchar(255) | NO   | PRI | NULL    |       |
| created_time | datetime     | YES  |     | NULL    |       |
| deleted      | bit(1)       | NO   |     | NULL    |       |
| updated_time | datetime     | YES  |     | NULL    |       |
| icon_class   | varchar(255) | YES  |     | …
Run Code Online (Sandbox Code Playgroud)

mysql orm go beego

2
推荐指数
1
解决办法
3573
查看次数

调用 Time.In 时缺少位置

当我使用beego/orm操作postgresql数据库时,出现这样的错误“调用Time.In时缺少位置”。

代码示例

type dataTest struct {
    Id      int         `pk:"auto"`
    Data    time.Time   `orm:"auto_now;type(timestamp);null"`
}

local, _ := time.LoadLocation("UTC")
test_time, err := time.ParseInLocation("2006-01-02 15:04:05", "1111-01-25 14:27:07", local)
orm.DefaultTimeLoc = time.UTC

o,err := orm.NewOrmWithDB("postgres","default",db)
temp := new(dataTest)
temp.Id = 1
temp.Data = test_time
o.Update(temp)
Run Code Online (Sandbox Code Playgroud)

go beego

2
推荐指数
1
解决办法
5343
查看次数

Beego 找不到控制器

我正在研究 beego 应用程序。我试图在两台不同的机器上运行相同的代码。两者都是ubuntu。在一台机器上,它运行没有任何问题,但在另一台机器上我得到了以下错误日志。我对两者都有相同的文件组织,您认为为什么会发生这种情况?

controllers/EventController.go:18: this.ServeJson undefined (type *EventController has no field or method ServeJson)
controllers/EventController.go:24: this.ServeJson undefined (type *EventController has no field or method ServeJson)
controllers/EventController.go:30: this.ServeJson undefined (type *EventController has no field or method ServeJson)
controllers/default.go:14: c.TplNames undefined (type *MainController has no field or method TplNames)
Run Code Online (Sandbox Code Playgroud)

偶控制器:

package controllers


import (
    "github.com/astaxie/beego"
    "solardatabase/models"
    "solardatabase/dao"
    "solardatabase/services"
)

type EventController struct {
    beego.Controller
}

func (this *EventController) ListEvents() {
    res := struct{ Tasks []*models.Event }{dao.GetAllEvents()}
    this.Data["json"] = res
    this.ServeJson()
}

func …
Run Code Online (Sandbox Code Playgroud)

rest frameworks go beego

1
推荐指数
1
解决办法
1716
查看次数

如何将字符串转换为time.Time

当我尝试将此json转换为时间时,出现错误

输出:

这里---------------------------------- 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC

生的:

{
  "tenantID": "9e266e1a750e45f8862e83341a5d0970",
  "startTime": "2019-4-1T11:45:26.371Z",
  "endTime": "2019-4-10T11:45:26.371Z"
}
Run Code Online (Sandbox Code Playgroud)

控制器:

var bodyBytes []byte
raw := make(map[string]interface{})
jsons := make(map[string]interface{})

if h.Ctx.Request.Body != nil {
    bodyBytes, _ = ioutil.ReadAll(h.Ctx.Request.Body)
}

json.Unmarshal(bodyBytes, &raw)

time1, err := time.Parse(time.RFC3339,raw["startTime"].(string));
time2, err := time.Parse(time.RFC3339,raw["endTime"].(string));
fmt.Println("HERE------------------------------------",time1,time2)

usageSingle, err := compute.UsageSingleTenant(raw["tenantID"].(string), time1, time2)
Run Code Online (Sandbox Code Playgroud)

api controller go beego

1
推荐指数
1
解决办法
55
查看次数

使用beego上传相同格式的文件

文件上传已完成,但没有与我在html文件中尝试过的文件名相同的名称

<html>
 <title>Go upload</title>
 <body>

 <form action="http://localhost:8080/receive" method="post" enctype="multipart/form-data">
 <label for="file">Filename:</label>
 <input type="file" name="file" id="file">
 <input type="submit" name="submit" value="Submit">
 </form>

 </body>
 </html>
Run Code Online (Sandbox Code Playgroud)

并在beego/go receive.go

package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func uploadHandler(w http.ResponseWriter, r *http.Request) {

	// the FormFile function takes in the POST input id file
	file, header, err := r.FormFile("file")

	if err != nil {
		fmt.Fprintln(w, err)
		return
	}

	defer file.Close()

	out, err := os.Create("/home/vijay/Desktop/uploadfile")
	if err != nil {
		fmt.Fprintf(w, "Unable to create the …
Run Code Online (Sandbox Code Playgroud)

file-upload go beego

0
推荐指数
1
解决办法
2392
查看次数

golang 缺少 len 参数

如何将一行设置为map[string]map[string]interface{}

不能在赋值中使用 s.ID(字符串类型)作为类型 map[string]interface {}

var row = make(map[string]map[string]interface{})
Run Code Online (Sandbox Code Playgroud)

列表服务器

func ListServers() (map[string]map[string]interface{}, error) {
listOptions := servers.ListOpts{}
pager := servers.List(GetClientCompute(), listOptions)
err := pager.EachPage(func(page pagination.Page) (bool, error) {
    serverList, err := servers.ExtractServers(page)
    if err != nil {
        fmt.Println(err)
    }
    for _, s := range serverList {
        row["ID"] = s.ID                                 <---- error is here
        row["Name"] = s.Name                                 <---- error is here
        if s.Addresses["public"] != nil {
            for _, i := range s.Addresses["public"].([]interface{}) {
                temp := i.(map[string]interface{})
                if temp["version"].(float64) == 4 …
Run Code Online (Sandbox Code Playgroud)

api controller go beego

0
推荐指数
1
解决办法
3698
查看次数

Golang beego框架设置状态代码

我正在使用Golang编写Web应用程序,我使用的是beego框架.似乎框架具有为golang Web服务器返回的内部状态代码.

我想知道golang或beego中是否有任何方法,或其他工具可以让我控制返回浏览器的状态代码,比如说200或500或其他数字.

go web beego

-2
推荐指数
1
解决办法
2996
查看次数