8

我有这样的代码:

... setup $issue object ...
$node = node_save($issue);

print_r($node);

节点创建成功,一切正常……但从 save_node() 没有返回任何内容。较早的文档表明它返回 $nid。一些讨论和票证表明,在最近的 Drupal 版本中,节点对象被返回,但我什么也没得到(并且 $node->nid 是空的)。

那么,如何找出新创建节点的nid呢?

4

2 回答 2

24

好吧,终于想通了(男孩我觉得很傻)。

node_save 现在对现有节点对象(在我的例子中已经在 $issue 中定义)进行操作,并且只需将 nid 字段(以及其他字段)添加到现有对象。没有返回任何内容,但我可以在 node_save 运行后使用 $issue->nid 访问 nid。

于 2009-06-01T03:41:20.653 回答
0

谢谢你!很高兴知道。感谢您回答自己的问题并分享,以便其他人(如我自己)可以学习!很好的解决方案!感谢您的贡献

2个提示:
//使用drupal_set_message()通知用户节点已成功保存
//尝试在保存之前使用node_submit()来捕获可能存在的错误

if ($_newnode = node_submit($_newnode)) {
    node_save($_newnode);
    drupal_set_message(t("Node ".$_newnode->title." added correctly"));
    $return = $_newnode->uid;
} else {
    $return = 0;
    drupal_set_message(t("Node ".$_newnode->title." added incorrectly"), "error");
}

return $return;
于 2010-12-23T20:04:19.533 回答