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

我知道这是非常基本的,但我认为 [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`

这里有人和我有同样的问题吗?任何解决方案吗?


米脂
浏览 766回答 2
2回答

缥缈止盈

在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)  }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go