我有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();
问题: -
但是当我在数据库中办理登机手续时,我看不到任何包含上述节点详细信息的新记录。
任何帮助都非常感谢。
答案 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')中记录这些记录......
保存节点时是否有任何错误消息?