0

...つまり、SQL で行うように単純な結合を作成する方法を教えてください。

次の情報が必要だとします。

例として:

  • 人のフルネーム
  • 人の趣味。

彼の氏名は (コンテンツ プロファイル) ノード タイプ 'name_and_address' にあり、彼の趣味は 'hobbies' にあります。

SQL では、node.uid でそれらをリンクします。リレーションシップの使用について少し見てきましたが、それは user-node-refs にも当てはまります。あるコンテンツタイプと別のコンテンツタイプから同じユーザーが欲しいだけです。

では、1 つのビューで彼の名前と趣味を取得するにはどうすればよいでしょうか?

4

3 に答える 3

2

これが仕事をする方法はありますか?

そうでなければ...

ビューは、カスタム結合、フィルターなどで拡張できます。運が良ければ、このためのモジュールが既に用意されています。一部のモジュールは、独自のビュー プラグインを提供しています。

ドキュメントは少し断片的ですが、独自のビュー プラグインを作成できます。

注意すべきもう 1 つのことは、ビューが必ずしも答えではないということです。場合によっては、カスタム クエリと表示ハンドラーを作成することで、必要な処理をはるかに簡単に行うことができます。

于 2009-10-06T08:03:23.627 に答える
0

テンプレート ファイルで を使用views_embed_view()して、それらが表示される場所を手動で指定できます (さらに、あるビューを別のビューの真下にレンダリングすることもできます)。カスタム モジュールでこの関数をオーバーライド(modulename_embed_view($name, $display_id)して、ページに出力できるデータを選択的に編集できます。

元):

function modulename_embed_view($name, $display_id) {
  if (strcmp($_GET['q'], 'node/123') === 0) {
    $view = views_get_view($name);
    $view2 = views_get_view('second view');
    $output = $view['some element'] . $view2['element'];
  }
  return $output;
}

私はこれが非常にハックであることを知っています.phpを使用して、テンプレートファイルのビューを手動でレンダリングおよび変更する方法を示したかっただけです.

于 2009-10-08T17:35:22.043 に答える
0

ビューの関係セクションを見てください。これにより、異なるタイプのコンテンツ (テーブルなど) を関連付ける (結合する) ことができます。SQL に慣れている人にとっては特に直感的ではありませんが、このビデオではその多くを説明しています。http://www.drupalove.com/drupal-video/demonstration-how-use-views-2s-relationships

于 2009-10-06T08:07:06.460 に答える