web-dev-qa-db-ja.com

Strapi CMS:ネストされたコンテンツを取得します

私はStrapi CMSを使用していて、ネスト/ディープコンテンツのデータを取得することに苦戦しています。 e.g:言ってみましょう、私は作成されたコンテンツタイプの下にあり、関係が定義されています。

人:名前、年齢

住所:都市、国

連絡先:コード、番号

人は1つの住所を持っています

アドレスには多くの連絡先があります

問題は、「/ Persons」にアクセスすると、名前、年齢、およびアドレスオブジェクトのみが取得されます。しかし、アドレスオブジェクトには、アドレスに関連付けられている連絡先情報がありません。

誰かがこのような記事に対して解決するか私を指摘するのを手伝ってくれることができますか?

6
ivp

まず、これにカスタムコントローラ機能が必要です。の /api/person/controllers/Person.jsカスタム検索機能をエクスポートできます。あなたがどのフィールドになるかを定義することができます。

module.exports = {
  find: async (ctx) => {
    return strapi.query('person').find(ctx.query, ['address', 'contact']);
  },
};
 _

もう一つの解決策も私にとっても機能します:

module.exports = {
  find: async (ctx) => {
    return strapi.query('person').find(ctx.query, [
       { path: 'address' },
       { path: 'contact' },
    ]);
  },
};
 _

1つのレベルのより深い編集された例:

module.exports = {
  find: async (ctx) => {
    return strapi.query('person').find(ctx.query, [
      {
        path: 'address',
        populate: {
          path: 'contacts',
        },
      },
    ]);
  },
};
 _

参照のために最新のベータドドキュメントを参照してください。

https://strapi.io/documentation/3.0.0-beta.x/concepts/queries.html#api-Reference

5
Roland Balogh