0

...或者,换句话说,如何像在 SQL 中那样创建一个简单的连接?

假设我想要以下信息:

举个例子:

  • 一个人的全名
  • 一个人的爱好。

他的全名在(内容配置文件)节点类型“name_and_address”中,他的爱好在“hobbies”中。

在 SQL 中,我会通过 node.uid 将它们链接在一起。我已经看到了一些关于使用关系的内容,但这与用户节点引用有关。我只想要一种内容类型和另一种内容类型的同一个用户。

现在我怎样才能在 1 个视图中获得他的名字和他的爱好?

4

3 回答 3

2

这里有一个如何做到这一点?

如果不...

视图可以通过自定义连接、过滤器等进行扩展。如果幸运的话,已经有一个模块用于此。一些模块甚至提供自己的视图插件。

您可以编写自己的视图插件,尽管文档有些零散。

应该注意的另一件事是视图并不总是答案。有时编写自定义查询和显示处理程序会以更少的麻烦做你想做的事。

于 2009-10-06T08:03:23.627 回答
0

查看视图的关系部分。这允许您关联(即连接)不同类型的内容(即表格)。对于习惯使用 SQL 的人来说,这并不是特别直观,但这个视频解释了其中的大部分内容。http://www.drupalove.com/drupal-video/demonstration-how-use-views-2s-relationships

于 2009-10-06T08:07:06.460 回答
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;
}

我知道这在很大程度上是一种 hack——我只是想展示如何使用 php 手动呈现和修改模板文件中的视图。

于 2009-10-08T17:35:22.043 回答