由于categories_1
和categories_2
之间存在多种关系,categories_1
中的不同行可能会显示categories_2
示例:
categories_1 categories_2
A 1: a , 2: b , 3: c, 4: d
B 1: c , 2: a
其中1:, 2: ...
是订单。
因此,我决定不将display_order
作为字段放在categories_2
中,而是将其放在关系表categories_1_categories_2_relations
中,因为categories_2
的订单取决于categories_1
}。但是,通过使用.with('categories_2', function(builder) {}
,.orderBy('display_order','asc')
似乎不允许我读取关系表中的字段。
我是否可以通过在关系表中使用字段categories_2
来订购display_order
?
答案 0 :(得分:0)
我遇到了同样的问题...媒体表中可以分配到家庭和订单信息的图像在home_media表中。
我解决了这个问题:await Home.query().with('media', (builder) => {
builder.orderBy('order', 'asc')
})
但我觉得你错过的重要一点是我在我的app / Models / Home.js里面添加了这个:
media() {
return this.belongsToMany('App/Models/Media')
.withPivot(['type', 'order'])
}
所以我相信.withPivot是你的解决方案......只需将withPivot(['display_order'])添加到您定义多对多关系的类别模型中。
此处有更多信息:http://adonisjs.com/docs/4.0/relationships#_withpivot