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

3

我是使用 Drupal。我有一个模块,可以在节点上加载一个表单。在我的模块中,我使用了

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

这个问题涉及到IT技术,需要翻译的内容是“which got the nid each form was on.”

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

我尝试使用类似以下的方法:

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

但它没有返回任何东西。

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

2个回答

1

您可以使用视图自定义字段模块,它将为每一行提供访问 $data 对象的权限。其中包括 nid,如 $data->nid。您还可以在 views-row.tpl.php 中访问它。如果您安装了必备的 Devel 模块,您可以使用 dsm(get_available_vars()); 来漂亮地打印该模板中所有可用的变量,或者只需使用 dsm($data); 来漂亮地打印您在视图自定义字段中的数据对象(dsm() 使用 Krumo,非常方便)。


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

这段代码仅在用户位于节点页面时才有效。路径是否别名并不重要。 因此,在视图中,它将无法工作。

如果您正在构建显示节点的视图,则可以添加node:id字段以获取行所属节点的节点ID。我认为不需要使用Views Custom Filed(或如果您使用Drupal 7则使用Views PHP模块)。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接