J'ai actuellement deux collections, qui sont Schools
et Contacts
. La collection Schools
a déjà été remplie avec des milliers de données tandis que Contacts
est une nouvelle collection qui est toujours vide.Voiles de créer des données dans plusieurs à plusieurs relation
Maintenant, il y a un changement de schéma pour les deux. Voici le détail du schéma:
// ----------- Schools.js
module.exports = {
attributes: {
user: {
model: 'users'
// Của User đã tạo
},
essential: {
type: 'string'
// Lưu toàn bộ thông tin của essential
},
contacts: {
collection: 'contacts',
via: 'schools'
},
pipeline: {
type: 'string',
defaultTo: ""
},
status: {
type: 'integer',
defaultsTo: 1
// 0: un-active, 1: active
}
}
};
// ----------- Contacts.js
module.exports = {
attributes: {
title: {
type: 'string'
},
firstName: {
type: 'string'
},
lastName: {
type: 'string'
},
email: {
type: 'string'
},
position: {
type: 'string'
},
landlinePhone: {
type: 'string'
},
mobilePhone: {
type: 'string'
},
externalCompany: {
type: 'string'
},
schools : {
collection: 'schools',
via: 'contacts',
dominant: true
},
user: {
model: 'users'
},
activities: {
collection: 'activities',
via: 'contact'
},
status: {
type: 'integer',
defaultsTo: 1
// 0: remove, 1: active, 2: unactive
}
}
};
Et voici mon code lors de la création d'un nouveau contact:
Contacts.create(contactData).exec(function (e1, newContact) {
if (e1) {
console.log("e1 ::: ", e1);
};
// newContact is filled with contact new data..
console.log("Contact data has been created", newContact, schoolId);
// Adding schools to newContact (schoolId has a value here);
newContact.schools.add(schoolId);
// Save
newContact.save(function (err) { console.log('err', err) });
});
Cependant, quand je vérifie sur ma base de données, contacts
a été créé, mais sans schools
attributs. Et le schools
associé n'a toujours pas d'attribut contacts
.
J'ai essayé ce qui suit;
newContact.schools.add([schoolId]);
// or --
newContact.schools.add(schoolObj);
// or --
newContact.schools.add([schoolObj]);
J'ai essayé de changer l'attribut dominant
entre ces deux collections et faire l'exécution inversée comme,
school.contacts.add(newContact);
J'ai aussi essayé ces solutions et pas lucks;
- http://sailsjs.com/documentation/concepts/models-and-orm/associations/many-to-many
- Sails.js How to insert data into a join table (Many to Many)
Suis-je manque quelque chose ici? Toute suggestion est appréciée ..
Je suis tellement stupide .. Je viens de réaliser que le nombre de plusieurs est dans une autre collection. Merci pour votre réponse.. –