【问题标题】:How do I get the node ID from a view row?如何从视图行中获取节点 ID?
【发布时间】: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

【问题讨论】:

    标签: php drupal views


    【解决方案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,请先通过节点引用字段添加与其他节点的关系。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-18
        • 2015-10-30
        • 1970-01-01
        • 1970-01-01
        • 2017-10-22
        • 2014-10-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多