【问题标题】:Beego orm - Relation doesn't workBeego orm - 关系不起作用
【发布时间】:2015-10-29 15:43:11
【问题描述】:

在以下模型中:

package models

import "github.com/astaxie/beego/orm"

type Movie struct {
    Id      int    `orm:"pk; auto; column(id)"; form: "-"`
    Title   string `orm:"unique; column(title)"; form: "title, text, title:`
    Plot    string `orm:"column(plot)"; form: "plot, text, plot:"`
    ImdbID  string `orm:"column(imdb_id)"; form: "imdb_id, text, imdb_id:"`
    Actors  string `orm:"column(actors)"; form: "actors, text, actors:"`
    Runtime string `orm:"column(runtime)"; form: "runtime, text, runtime:"`
    Year    string `orm:"column(year)"; form: "year, text, year:"`
    Genre   *Genre `orm:"rel(fk); on_delete(do_nothing)"`
    Cover   string `orm:"column(cover)"; form: "cover, text, cover:"`
    Status  int    `orm:"column(status)"; form: "status, int, status:"`
}

func (a *Movie) TableName() string {
    return "app_movie"
}

func init() {
    orm.RegisterModel(new(Movie))
}

我想参考:流派模型,它看起来像:

package models

import "github.com/astaxie/beego/orm"

type Genre struct {
    Id     int    `orm:"pk; auto; column(id)"; form: "-"`
    Title  string `orm:"unique; column(title)"; form: "title, text, title:`
    Status int    `orm:"column(status)"; form: "status, int, status:"`
}

func (a *Genre) TableName() string {
    return "app_genre"
}

func init() {
    orm.RegisterModel(new(Genre))
}

有关信息,它会转到带有数据的 sqlite db(首先是数据库)。

在控制器中,我遍历电影列表并打印出:movie.Genre.Title,但它是空的。如果我看电影。类型我得到:{3 0}

如何获取标题和 ID?或者。我做错了什么?

感谢您的帮助!

【问题讨论】:

  • 您是如何查询的?你使用 RelatedSel 吗?
  • 推荐中的错误代码格式请查看答案部分。

标签: go orm beego


【解决方案1】:
num, err := qs
    .Limit(4)
    .Filter("status", true)
    .RelatedSel()
    .Exclude("useritem__userid", 1)
    .OrderBy("-id")
    .All(&movies)

一切正常。 :) .RelatedSel()

【讨论】:

  • 如果此查询存在/如果此处在 filter("status") 状态为 nil/"" 和不存在时为 "0" 将获得“1”。我放置了限制(1)。 (beego)code func AuthorizeUser(auth_token string) (bool, error) { o := orm.NewOrm() var users []*User qs := o.QueryTable("user") num, err := qs. Limit(1).Filter("auth_token", auth_token).RelatedSel().OrderBy("-id").All(&users) //过滤匹配的auth token if err != nil || num == 0 { return false, err } return true, nil
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-05
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
  • 2014-05-12
相关资源
最近更新 更多