Решение миграции 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()

Я не тестировал код, но это должно направить вас на правильный путь

Другие вопросы по тегам