2 votes

AdonisJs solution de migrations pour many to many

Je me demandais comment je pouvais résoudre une solution "many to many" avec des migrations comme dans ce diagramme : Diagramme de relation DB

u_id_user est un FK de la table User

u_g_id est unique et auto-incrémenté

g_id_group est un FK de Groupe

Exemple de code :

class UserGroupsSchema extends Schema {
  up () {
    this.create('user_groups', (table) => {
      table.increments()
      table.integer('u_id_user')
      table.integer("g_id_group")
      table.timestamps()
    })
  }

Un autre problème est que si j'exécute mes migrations, les tables sont créées avec le type MyISAM et je ne peux pas construire de relations avec ce type alors comment puis-je changer le type par défaut en InnoDB ?

0voto

VladNeacsu Points 784

Dans le fichier adonis.js la documentation vous devez définir vos modèles comme suit :

const Model = use('Model')

class User extends Model {
  groups () {
    return this.belongsToMany('App/Models/Group')
  }
}

module.exports = User

Vous pouvez ensuite interroger la date comme suit :

const user = await User.find(1)

const groups = await user
  .groups()
  .wherePivot('user_id', '=', user.id)
  .fetch()

Je n'ai pas testé le code, mais ceci devrait vous mettre sur la bonne voie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X