2017-03-13 3 views
1

私はContentfulを使用しており、一連の関連フィールドを使用するコンテンツモデルを使用しています。私は、JS APIを使用してNodeJSでコンテンツを照会しています。私は、私が呼び出した場合、しかし、そうコンテンツクエリでリンクフィールドを取得する方法

"subField": { 
     "sys": { 
      "space": { 
       "sys": { 
        "type": "Link", 
        "linkType": "Space", 
        "id": "#######" 
       } 
      }, 
      "id": "#######", 
      "type": "Entry", 
      "createdAt": "2017-03-10T15:58:25.697Z", 
      "updatedAt": "2017-03-10T15:58:25.697Z", 
      "revision": 1, 
      "contentType": { 
       "sys": { 
        "type": "Link", 
        "linkType": "ContentType", 
        "id": "homeSubField" 
       } 
      }, 
      "locale": "en-GB" 
     }, 
     "fields": { 
      "category": { 
       "sys": { 
        "type": "Link", 
        "linkType": "Entry", 
        "id": "#######" 
       } 
      }, 
      "subFieldContent": "Some field content" 
     } 
    }, 

のように、そう

contentfulClient.getEntries({ 
    content_type: 'homePage' 
}) 

それはタイプのホームページのすべてのコンテンツをフェッチし、各関連分野の実際のフィールドデータを含んように、エントリを取得する呼び出す場合

contentfulClient.getEntry('1234567890') 

ようなIDを有する特定のエントリには、次に、各リンクフィールドだけ

等IDと参照として返されます のgetEntryを呼び出すときに、私は またgetEntriesで行うよう
"subField": { 
      "sys": { 
       "type": "Link", 
       "linkType": "Entry", 
       "id": "#######" 
      } 
     }, 

は、どのように私は、フルテキストを得ることができますか?

答えて

6

残念ながら、コンテンツアイテムをIDで直接取得する場合、Contentfulには参照されたコンテンツは含まれません。この問題を回避する方法の1つは、代わりにgetEntriesメソッドを使用し、フィルタをsys.idでフィルタすることです。そうすれば、配列内ではあるが同じエントリーが返されますが、参照されるコンテンツも含まれます。

contentfulClient.getEntries({ 
    content_type: 'homePage', 
    sys.id: '1234567890' 
}) 

これはまた、GetEntry方法を使用して、手動で各参照コンテンツアイテムを解決するときに終わるであろうように代わりに複数の単一の要求をもたらします。

+0

華麗な、ありがとう、それは動作します! – Math

関連する問題