Решение миграции AdonisJs для многих ко многим
Мне было интересно, как я могу решить много-много решений с миграциями, как на этой диаграмме: Диаграмма отношений БД
u_id_user - это FK из таблицы User
u_g_id является уникальным и автоинкрементным
g_id_group это ФК из группы
Пример кода:
class UserGroupsSchema extends Schema {
up () {
this.create('user_groups', (table) => {
table.increments()
table.integer('u_id_user')
table.integer("g_id_group")
table.timestamps()
})
}
Другая проблема состоит в том, что, если я запускаю свои миграции, он создает таблицы с типом MyISAM, и я не могу построить отношения с этим типом.. так как я могу изменить тип по умолчанию на InnoDB?
0 ответов
Из документации adonis.js вам нужно определить свои модели следующим образом:
const Model = use('Model')
class User extends Model {
groups () {
return this.belongsToMany('App/Models/Group')
}
}
module.exports = User
После этого вы можете запросить дату следующим образом:
const user = await User.find(1)
const groups = await user
.groups()
.wherePivot('user_id', '=', user.id)
.fetch()
Я не тестировал код, но это должно направить вас на правильный путь