Adonis很多很多,按照'display_order'关系表中的字段

时间:2018-03-27 07:51:29

标签: adonis.js

由于categories_1categories_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

1 个答案:

答案 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