2016-07-23 10 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); 

私は成功し、新しいノードID

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

問題作成されますか上記newNodeエコー場合: -
をしかし、私は確認したときにデータベースでは、上記のノードの詳細で新しいレコードは表示されません。

ご協力いただきありがとうございます。

+0

あなたのサイト/ノード/ [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次元(言語とデルタ)の配列です。 次に、あなたのコードは、あなたの「ノード」テーブルに見れば次に、あなたが返さNIDのレコードを持っている必要があります

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

でなければなりません。しかし、配列で正しく書式設定しないと、フィールドテーブル( 'field_data_field_prod_type'と 'field_data_field_prod_cost')にレコードを持つことはできません。

ノードを保存するときにエラーメッセージが表示されますか?

関連する問題