节点已创建但未在Drupal 7中插入db

时间:2016-07-23 13:12:24

标签: php drupal drupal-7 drupal-nodes

我有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();

问题: -
但是当我在数据库中办理登机手续时,我看不到任何包含上述节点详细信息的新记录。

任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:0)

您必须使用node_object_prepare函数来准备节点值。

但是节点不会被发布(status = 1)并且没有附加用户(uid = 0?)。 最后,字段的格式总是数组,有2个维度(语言和delta)。 那么你的代码必须是

$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')中记录这些记录......

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