別のエンティティのフィールドのエンティティ参照からフィールドを表示する


7

コンテンツタイプには、コンポジション、レコーディング、アーティストの3つがあります。コンポジションには、フィールドコンポーザーのアーティストへのエンティティ参照があります。レコーディングには、フィールドコンポーザーのコンポジションとフィールドレコーディングアーティストのアーティストへのエンティティ参照があります。これは私がやりたいことです:

  1. すべてのコンポジションと作曲者のリスト(アーティストコンテンツタイプへのエンティティ参照)を含むページを表示したいと思います。ここで問題ありません。
  2. コンテンツタイプ構成のエンティティ参照によって参照されているフィールドレコーディングアーティストの別のフィールド(コンテンツタイプRecordingのエンティティ参照フィールド)が必要です。これが問題です。

主な問題は、エンティティ参照のエンティティ参照からフィールドを呼び出そうとしていることだと思います。その橋を架ける方法はありますか?


1
代替ソリューションを確認しましたか?drupal.org/project/relation
Codium

回答:


1

カスタム表示を使用して、この方法でエンティティ参照フィールドをデイジーチェーン接続できます(要件を誤解しない限り)。

これをする...

  1. エンティティビューモードモジュールをインストールします
  2. 次に、構成-システム-エンティティビューモードで、問題のエンティティの新しい表示を作成し、それが記録タイプにアタッチされていることを確認します。後で混乱を避けるために、新しいディスプレイに「埋め込み記録」などのわかりやすい名前を付けます。
  3. 次に、レコーディングエンティティの表示モード設定(例:「ディスプレイの管理」)に移動し、新しい「埋め込みレコーディング」画面で、レコーディングアーティストエンティティの参照フィールドが表示されていることを確認します。
  4. 最後に、コンポジションエンティティの表示モード設定(その「表示の管理」)に移動し、記録エンティティ参照フィールドで、形式としてレンダリングされたエンティティを選択し、表示モードとして「埋め込み記録」を選択します(このオプションは、右側の小さな歯車のアイコン)。

(もちろん、管理表示設定から新しい表示モードを追加できれば、これははるかに簡単です!おそらく1日...)


0

最近、よく似た問題に多くの時間を費やしたので、あなたの質問が私の目を引きました。注意:私はDrupalを初めて使用するので、以下のすべてを良い粒の塩で服用してください。

私が正しく理解していれば、次のアーキテクチャが必要です。レコーディングはアーティストを参照します(これをレコーディングアーティストと呼びます)。
また、次の機能が必要です。まず、Compositionエンティティを指定して、レコーディングアーティストのフィールド(名前など)にアクセスします。次に、レコーディングアーティストフィールドをコンポジションエンティティのコンテンツオブジェクトに追加して、他のコンポジションフィールドとともにテンプレートで印刷できるようにします。つまり、Compositionエンティティのコンテンツオブジェクトを介してRecording Artistフィールドにアクセスできるようにする必要があります。

相談するjuhogことで、この非常に素晴らしい答えを。それはあなたがやろうとしていることと非常によく関連していると思います。「参照エンティティへのアクセスを取得する」方法と、参照エンティティから参照エンティティにフィールドを追加する方法について説明します。

あなたの質問が混乱しているように見えたので、これで私はあなたを正しい方向に動かそうとしました(あなたは私の同情を持っています、私はそこにいました)。私は経験が限られているので、コーディング例を示すことは控えます。


0

ビューに3番目のコンテンツタイプのリレーションシップを追加し、フィールドリストでそのコンテンツタイプのフィールドを使用するだけで、リレーションシップを追加するとビューがSQLクエリに結合ステートメントを追加し、その結合テーブルの列を出力で使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.