「Slideshow」というコンテンツタイプがあり、ユーザーは「slideshow」ノードをいくつでも作成できます。このコンテンツタイプには、他のフィールド(キャプション、画像、説明、リンク)のフィールドコレクションである "Slide"というフィールドがあります。ユーザーは、各「Slideshow」ノードに複数の「Slides」を追加できます(これは、PARAGRAPHSまたはFIELD COLLECTIONモジュールのいずれかを使用して実現できます)。
次に、VIEWSを使用して "Slideshow"コンテンツタイプのブロックを作成し、コンテキストフィルターNidを使用して特定のノードを表示します。
私の問題は、ビューで「slideshow」コンテンツタイプの「タイトル」および「slide」フィールド(レンダリングされたとおり)のみをリストできるのに対し、 "Slide"フィールド(キャプション、画像、説明、リンク)内のフィールド。VIEWSを使用してそれらをカスタマイズできます。これを達成する方法はありますか? (VIEWSがPARAGRAPHSモジュールのフィールドにアクセスできるようにします)。
考えられる解決策:ビューに「Slide」という関係を追加しました。これにより、「Slide "フィールド内のフィールドを一覧表示できるようになりました。問題は、私が関係を回避しようとしていることです。これは、多くの左結合を使用するため、パフォーマンスが低下する可能性があるためです。私のWebサイトでは、同じページでこれらのスライドショーやギャラリーを何度も使用しているため、パフォーマンスを低下させたくありません。
どんな助けでも大歓迎です。
D8では、ビューは自動的にキャッシュされます。したがって、クエリは結果がキャッシュされるため、これについてはあまり心配しません。それでも、Show performance statistics
ビュー設定(/admin/structure/views/settings
)、所要時間を確認します。
1つのフィールドでテストすると、ビューの表示:フィールドコレクションアイテムを作成し、フィールドのコレクションの関係を持つビューの表示:コンテンツではなくノードに関係を追加すると、ビューのレンダリング時間が〜1.20ms速くなります。