Создание узла, но не вставка в БД в Drupal 7

я имею 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();

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

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

1

Решение

Вы должны использовать node_object_prepare функция для подготовки значений узлов, как вы уже сделали.

Но узел не будет опубликован (status = 1) и к нему не будет подключен пользователь (uid = 0?).
И, наконец, формат поля — это всегда массивы с двумя измерениями (язык и дельта).
Тогда ваш код должен быть

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]