Beego orm – 关联关系不起作用

huangapple go评论84阅读模式
英文:

Beego orm - Relation doesn't work

问题

在下面的模型中:

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))
}

我想引用以下模型:genre模型,它看起来像这样:

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 first)。

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

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

谢谢你的帮助!

英文:

in the following model:

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))
}

I would like to refer to: the genre model, which looks like:

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))
}

For information it goes to an sqlite db with data (DB first).

In the controller i iterate over a list of movies and print out: movie.Genre.Title but its empty. If I watch on movie.Genre I get: {3 0}

What to do to get to the title and the ID? Or. what am I doing wrong?

Thanks for your help!

答案1

得分: 2

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

一切都正常运行。:) .RelatedSel()

英文:
num, err := qs
    .Limit(4)
    .Filter("status", true)
    .RelatedSel()
    .Exclude("useritem__userid", 1)
    .OrderBy("-id")
    .All(&movies)

> all works fine. Beego orm – 关联关系不起作用 .RelatedSel()

huangapple
  • 本文由 发表于 2015年10月29日 23:43:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/33418735.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定