Адонис Многие ко многим, Сортировка по полю 'display_order' в таблице отношений
Из-за многих отношений между 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
в таблице отношений?
1 ответ
У меня была такая же проблема... В таблице мультимедиа были изображения, которые можно назначить дому, и информация о заказе была внутри таблицы home_media.
Я решил это так:
await Home.query().with('media', (builder) => {
builder.orderBy('order', 'asc')
})
Но я думаю, что важная вещь, которую вы пропустили, это то, что я добавил в свое приложение /Models/Home.js это:
media() {
return this.belongsToMany('App/Models/Media')
.withPivot(['type', 'order'])
}
Поэтому я верю, что.withPivot - это решение для вас... Просто добавьте withPivot(['display_order']) к вашей модели категорий, где вы определили отношение "многие ко многим".
Более подробная информация здесь: http://adonisjs.com/docs/4.0/relationships