Создание узла, но не вставка в БД в 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'), если вы неправильно отформатируете их в массиве...
Есть ли у вас сообщение об ошибке при сохранении вашего узла?