Drupal 7, проверка узла в соответствии с интерфейсом - PullRequest
2 голосов
/ 19 марта 2020

Я создал веб-сервис, он работает правильно, я делал операцию по созданию узла, и он работает правильно. Мне нужно проверить узел, который я собираюсь сохранить, таким же образом, как он проверяется во время формы вставки интерфейса.

Я пробовал с

drupal_form_submit($nodeType . '_node_form', $form_state, (object) $node);

, он продолжает давать мне ошибки, его поля ссылки на узел

Не могли бы вы предложить другие способы сделать ту же проверку, которая выполняется интерфейсом на программно созданном узле?

Ошибка в поле ссылки на узел:

"field_ente: на эту запись нельзя сослаться."

Узел (6310) существует правильно, и если я пытаюсь сделать node_save, он сохраняется правильно

полная функция выглядит следующим образом

function my_ws_resource_create($field_nome = '', $field_cognome = '', $field_codice_fiscale = '', $field_data_di_nascita = '', $field_ente= '')
{

    module_load_include('inc', 'node', 'node.pages');
    global $user;
    $nodeType = 'contatti';

    $node = new stdClass();
    $node->type = $nodeType;
    $node->uid = $user->uid;
    $node->status = 1;
    $node->revision = 1;
    $node->promote = 0;
    $node->comment = 0;

    node_object_prepare($node);

    $node->field_cognome['und'][0]['value'] = $field_cognome;
    $node->field_nome['und'][0]['value'] = $field_nome;
    $node->field_codice_fiscale['und'][0]['cck_codicefiscale'] = $field_codice_fiscale;
    $node->field_data_di_nascita['und'][0]['value'] = $field_data_di_nascita;
    $node->field_categoria_contatto['und'][0]['tid'] = '66';



    // $node->field_ente = array('und' => array(array('nid'=> $field_ente )));
    // this field causes the error
    $node->field_ente = array('und' => array(array('nid'=> '6310')));



    $node->field_simplenews_term['it'][0]['tid'] = '13660';

    $form_state = array();      
    $form_state['values']['type'] = $nodeType;    
    $form_state['values']['name'] = $user->name;    
    $form_state['values']['status'] = 1;
    $form_state['values']['promote'] = 1;
    $form_state['values']['sticky'] = 0;

    $form_state['values']['op'] = t('Save');
    drupal_form_submit($nodeType . '_node_form', $form_state, (object) $node);

    if ($errors = form_get_errors()) {
        return services_error(implode(" ", $errors), 406, array('form_errors' => $errors));
    }
    return 'Creation successful';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...