2016-07-23 8 views
1

Ich habe Drupal 7 Website. Ich schaffe Knoten in meinem Modul wie folgt: -Knoten wird erstellt, aber nicht in db in Drupal 7 eingefügt

$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); 

Wenn ich die oben newNode echo ich tun die erfolgreiche

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

Ausgabe neuer Knoten-ID erstellt: -
Aber wenn ich überprüfen In der Datenbank sehe ich keinen neuen Datensatz mit den obigen Knotendetails.

Jede Hilfe sehr geschätzt.

+0

Ao was siehst du, wenn du zu deiner/node/[nidofnewnode] gehst? Node-Erstellung sieht gut aus, aber Einstellungswerte für die Felder sieht falsch aus, versuchen Sie ohne sie: '$ NewNode-> Feld_Prod_type = 1;' '$ NewNode-> Feld_Prod_Cost = 125,00;' – justtry

+0

@ Justage. Ja du hast Recht. Auf den Knoten kann 'yoursite/node/[nidofnewnode]' zugegriffen werden, aber in der Datenbank sehe ich die Werte nicht –

Antwort

0

Sie müssen die node_object_prepare Funktion verwenden, um die Knotenwerte vorzubereiten, wie Sie es getan haben.

Aber der Knoten wird nicht veröffentlicht (Status = 1) und kein Benutzer angeschlossen (UID = 0?). Und schließlich, das Format von Feld sind immer Arrays, mit 2 Dimensionen (Sprache und Delta). Code Dann

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

Dann, wenn Sie in Ihren ‚Knoten‘ Tabelle aussehen muss, müssen Sie den Datensatz für das zurück nid haben. Aber Sie können nicht die Datensätze in den Feldern Tabellen ('field_data_field_prod_type' und 'field_data_field_prod_cost') haben, wenn Sie es nicht korrekt in Array formatieren ...

Haben Sie eine Fehlermeldung beim Speichern Ihres Knotens?