J'utilise Strapi CMS et luttant avec la récupération des données du contenu imbriqué/profond. E.g.: Disons, j'ai des types de contenu ci-dessous créés et les relations sont définies.
Personne: nom, âge
Adresse: Ville, Pays
Contact: Code, numéro
Personne a une adresse
L'adresse a de nombreux contacts
Maintenant, le problème est que lorsque j'accède à '/ personnes', je n'obtiens que le nom, l'âge et l'objet d'adresses. Mais l'objet d'adresse ne dispose pas des informations de contact associées à l'adresse.
Quelqu'un peut-il m'aider à résoudre ce problème ou de me diriger vers un tel article?
Tout d'abord, vous aurez besoin d'une fonction de contrôleur personnalisée pour cela. Dans /api/person/controllers/Person.js
Vous pouvez exporter votre fonction de recherche personnalisée. Là, vous pouvez définir les champs que vous souhaitez peupler:
module.exports = {
find: async (ctx) => {
return strapi.query('person').find(ctx.query, ['address', 'contact']);
},
};
Une autre solution fonctionne aussi pour moi:
module.exports = {
find: async (ctx) => {
return strapi.query('person').find(ctx.query, [
{ path: 'address' },
{ path: 'contact' },
]);
},
};
Exemple édité avec un seul niveau de peuplez de plus en plus:
module.exports = {
find: async (ctx) => {
return strapi.query('person').find(ctx.query, [
{
path: 'address',
populate: {
path: 'contacts',
},
},
]);
},
};
Pour référence, voir les documents bêta les plus récents:
https://strapi.io/documentation/3.0.0-beta.x/concepts/queries.html#api-reference