1

我有Drupal 7网站。我在我的模块中创建节点如下: -

    $newNode = new stdClass();
    $newNode->title = "Hello Node";
    $newNode->type = "product";
    node_object_prepare($newNode); // Sets some defaults.
    $newNode->field_prod_type = 1;
    $newNode->field_prod_cost = 125.00;

    node_submit($newNode); // Prepare node for saving
    node_save($newNode);

如果我回显上面的 newNode 我确实得到了成功创建的新节点 ID

echo "<pre>; print_r($newNode); exit();

问题:-
但是当我签入数据库时​​,我没有看到任何具有上述节点详细信息的新记录。

任何帮助高度赞赏。

4

1 回答 1

0

您必须使用node_object_prepare函数来准备节点值,就像您所做的那样。

但是该节点不会被发布(status = 1)并且没有附加用户(uid = 0?)。最后,字段的格式始终是数组,具有二维(语言和增量)。那么你的代码必须是

$newNode->field_prod_type['und'][0] = 1;
$newNode->field_prod_cost['und'][0] = 125.00;

然后,如果您查看“节点”表,您必须拥有返回的 nid 的记录。但是如果你没有在数组中正确格式化它,你就不能在字段表('field_data_field_prod_type'和'field_data_field_prod_cost')中拥有记录......

保存节点时是否有任何错误消息?

于 2016-08-01T15:00:51.883 回答