繁体   English   中英

Drupal node_save不再返回$ nid,所以我该如何获取它?

[英]Drupal node_save no longer returns $nid, so how do I get it?

我有这样的代码:

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

print_r($node);

节点创建成功,一切正常......但是没有从save_node()返回任何内容。 较旧的文档表明它返回$ nid。 几个讨论和故障单表明在最近的Drupal版本中返回了节点对象,但我什么都没有回来(并且$ node-> nid为空)。

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

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

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

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

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM