为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确使用beego框架上的RelatedSel()方法

如何正确使用beego框架上的RelatedSel()方法

Go
米脂 2021-09-09 21:18:22
我知道这是非常基本的,但我认为 [beego 网站][1] 上的官方文档[1]:http : //beego.me/docs/mvc/model/query.md没有给出明确的方向。我使用 beego 框架制作了一个 RESTful API。正如它所承诺的那样,它为我的应用程序生成基本的 CRUD 代码。问题是 READ 方法不返回所有数据。我所说的所有数据是指表中的数据,包括与其相关的所有表中的数据。这是生成的代码的输出(我使用 swagger 来调用它):{  "data": [    {      "Id": 1,      "CustomerId": {        "Id": 2,        "Name": "",        "Phone": "",        "Email": "",        "CreatedAt": "0001-01-01T00:00:00Z",        "UpdatedAt": "0001-01-01T00:00:00Z"      },      "Saldo": 2500000,      "CreatedAt": "2014-12-10T08:10:10+07:00",      "UpdatedAt": "2014-12-10T08:10:10+07:00"    }  ],  "totals": 1}看,它不返回姓名、电话和电子邮件。所以我查看了文档并找到了这个方法 RelatedSel() 但我仍然不知道如何正确使用它。这是我的代码:func GetAllCustomerSaldo(query map[string]string, fields []string, sortby []string, order []string,    offset int64, limit int64) (ml []interface{}, err error, totals int64) {    o := orm.NewOrm()    qs := o.QueryTable(new(CustomerSaldo))    qs.RelatedSel("CustomerId__Customers").All(&CustomerSaldo{})...在尝试了许多参数可能性后,我仍然收到此错误:Handler crashed with error unknown model/table name `Customers`这里有人和我有同样的问题吗?任何解决方案吗?
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

在RelatedSel 之后不需要LoadRelated - 因为RelatedSel 会在一个请求中自动获取数据到db(当然如果正确使用的话)。LoadRelated - 做同样的事情,但在额外的请求中。当您使用 RelatedSel 时,以及在该 LoadRelated 之后 - 您将做两次事情。


  orm.Debug = true


  o := orm.NewOrm()

  qs := o.QueryTable(&models.MainModel{})


  var req []*models.RelatedModel


  num, err := qs.RelatedSel().All(&req)


  beego.Debug(num)


  if err != nil {

    beego.Error(err)

  }


查看完整回答
反对 回复 2021-09-09
  • 2 回答
  • 0 关注
  • 765 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信