2016-07-23 7 views
1

У меня есть Drupal 7 сайт. Я создаю узел в моем модуле следующим образом: -Создание узла, но не вставка в db в 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 я получаю преуспевающим создал новый идентификатор узла

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

Выпуск: -
Но когда я проверяю в базе данных я не вижу никакой новой записи с указанными выше деталями узла.

Любая помощь очень ценится.

+0

Ao Что вы видите, когда идете на свой сайт/узел/[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?). И, наконец, формат поля - это всегда массивы с двумя размерами (язык и дельта). Тогда ваш код должен быть

$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'), если вы не отформатируете их правильно в массиве ...

У вас есть сообщение об ошибке при сохранении вашего узла?