如何从视图行中获取节点 ID?

Posted

技术标签:

【中文标题】如何从视图行中获取节点 ID?【英文标题】:How do I get the node ID from a view row? 【发布时间】:2011-11-20 18:08:13 【问题描述】:

我正在使用Drupal。我有一个将表单加载到节点上的模块。在我的模块中,我使用了

if ( arg(0) == 'node' && is_numeric(arg(1)) ) $node = arg(1);

每个表单都打开了nid

现在我创建了一个显示完整节点的视图,但我的节点没有显示 nid

我尝试使用类似的东西

$node = node_load($rows->nid);

但它没有返回任何东西。

基本上我有一个显示大约 10 个节点的视图页面,我试图在视图中找到每个节点的 nid

【问题讨论】:

【参考方案1】:

您可以使用视图自定义字段模块,它可以让您访问每行的 $data 对象。其中包括作为$data->nid 的nid。您还可以通过views-row.tpl.php 访问它。如果你有开发模块(这确实是必须的),你可以使用dsm(get_available_vars()); 漂亮地打印该模板可用的所有变量,或者只使用dsm($data); 来漂亮地打印视图中的数据对象自定义字段(dsm() 使用 Krumo,非常方便)。

【讨论】:

【参考方案2】:
if ( arg(0) == 'node' && is_numeric(arg(1)) ) $node = arg(1);

此代码仅在用户位于节点页面时才有效。路径是否有别名并不重要。 所以在 Views 中,它不起作用。

如果您正在构建一个显示节点的视图,您可以添加 node:id 字段以获取该行所属节点的节点 ID。我相信无需使用 Views Custom Filed(或 Views PHP 模块,如果您使用的是 Drupal 7)。

如果您尝试获取引用视图的节点 ID,请先通过节点引用字段添加与其他节点的关系。

【讨论】:

以上是关于如何从视图行中获取节点 ID?的主要内容,如果未能解决你的问题,请参考以下文章

在网格视图行中输入键文本框未获取 id 选择

如何在视图字段模板文件中获取节点ID?

如何获取列表视图选定行的小部件ID

使用 android studio java Recycler 视图从 Firebase 实时数据库中删除一个节点

Drupal:从节点而不是url获取块视图的参数?

如何使用 sqlite 中的视图在特定行中添加列?