2016-07-23 35 views
1

我有Drupal 7網站。我是我模塊中創建節點如下: -節點創建但不插入Drupal 7中的db

$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

Ao當你去yoursite/node/[nidofnewnode]時,你會看到什麼? 節點創建看起來不錯,但設置值的字段看起來不正確,嘗試沒有它們: '$ newNode-> field_prod_type = 1;' '$ newNode-> field_prod_cost = 125.00;' – justtry

+0

@justtry。是的,你是對的。節點可訪問'yoursite/node/[nidofnewnode]',但在數據庫中我看不到值 –

回答

0

您必須使用node_object_prepare函數來準備節點值,就像您所做的那樣。

但該節點不會被髮布(狀態= 1)並且沒有用戶連接(uid = 0?)。 最後,字段的格式始終是數組,包含2個維度(語言和增量)。 那麼你的代碼必須是

$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')...

保存節點時是否有任何錯誤消息?