node_save в Drupal имеет проблемы при сохранении значений в базе данных MySQL - PullRequest
0 голосов
/ 24 декабря 2018

У меня проблема в node_save в Drupal.

Ниже приведен мой код:

function retrax_notify_create(){

    $nodeId = array();  
    $nodeObj = new stdClass(); // We create a new node object
    $nodeObj->type = "re_trax_comments_and_notes"; // Or any other content type you want
    $nodeObj->title = "Re-Trax Comments";
    $nodeObj->language = LANGUAGE_NONE; 
    node_object_prepare($nodeObj); // Set some default values.


    $nodeObj->uid = 474; 

        $nodeObj->field_userid_ref['und'][0]['value'] = '5';

        $nodeObj->field_siteid_ref['und'][0]['value'] = '6';

        $nodeObj->field_notify_count['und'][0]['value'] = 7;


    $nodeObj = node_submit($nodeObj); 
    node_save($nodeObj);
    $nodeId[nid] = $nodeObj->nid;

    echo '<pre>';
    print_r($nodeObj);
    return $nodeId;         

}

Когда я запускаю меню ловушек, значения по умолчанию, такие как type, title, uid будут сохранены в таблице узлов, и идентификатор узла также будет сгенерирован.

Но значения для других трех таблиц не будут сохранены для

  • field_data_field_userid_ref
  • field_data_field_siteid_ref
  • field_data_field_notify_count

Столбец базы данных одной из таблиц имеет видпоказано ниже

field_userid_ref_value  varchar(255)            Yes NULL    

Все типы контента правильные, но значение не сохраняется в соответствующих таблицах.

Что я делаю не так?

1 Ответ

0 голосов
/ 25 декабря 2018

Я думаю, что строки вроде:

$nodeObj->field_userid_ref['und'][0]['value'] = '5';

неверны.У вас есть параметр «значение» только для типа поля, который действительно имеет значение, то есть текстовое поле.Если у вас есть ссылка на узел или поле тега, должно быть что-то еще.Возможно:

$nodeObj->field_userid_ref['und'][0]['nid'] = '5';

для узлов, или

$nodeObj->field_userid_ref['und'][0]['tid'] = '5';

для тегов, или

$nodeObj->field_userid_ref['und'][0]['uid'] = '5';

... для пользователей, в зависимости от того, на что ссылаются эти поля...

Создайте некоторый узел "общим" способом из серверной части, затем распечатайте его и посмотрите, какие поля существуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...