web-dev-qa-db-ja.com

VIEWSがPARAGRAPHSフィールドコレクションにアクセスすることを許可する

Slideshow」というコンテンツタイプがあり、ユーザーは「slideshow」ノードをいくつでも作成できます。このコンテンツタイプには、他のフィールド(キャプション、画像、説明、リンク)のフィールドコレクションである "Slide"というフィールドがあります。ユーザーは、各「Slideshow」ノードに複数の「Slides」を追加できます(これは、PARAGRAPHSまたはFIELD COLLECTIONモジュールのいずれかを使用して実現できます)。

次に、VIEWSを使用して "Slideshow"コンテンツタイプのブロックを作成し、コンテキストフィルターNidを使用して特定のノードを表示します。

私の問題は、ビューで「slideshow」コンテンツタイプの「タイトル」および「slide」フィールド(レンダリングされたとおり)のみをリストできるのに対し、 "Slide"フィールド(キャプション、画像、説明、リンク)内のフィールド。VIEWSを使用してそれらをカスタマイズできます。これを達成する方法はありますか? (VIEWSがPARAGRAPHSモジュールのフィールドにアクセスできるようにします)。

考えられる解決策:ビューに「Slide」という関係を追加しました。これにより、「Slide "フィールド内のフィールドを一覧表示できるようになりました。問題は、私が関係を回避しようとしていることです。これは、多くの左結合を使用するため、パフォーマンスが低下する可能性があるためです。私のWebサイトでは、同じページでこれらのスライドショーやギャラリーを何度も使用しているため、パフォーマンスを低下させたくありません。

どんな助けでも大歓迎です。

1
Ibrahim Samir

D8では、ビューは自動的にキャッシュされます。したがって、クエリは結果がキャッシュされるため、これについてはあまり心配しません。それでも、Show performance statisticsビュー設定(/admin/structure/views/settings)、所要時間を確認します。

1つのフィールドでテストすると、ビューの表示:フィールドコレクションアイテムを作成し、フィールドのコレクションの関係を持つビューの表示:コンテンツではなくノードに関係を追加すると、ビューのレンダリング時間が〜1.20ms速くなります。

1
No Sssweat