Я делаю узлы программно. Одно поле узла является ссылкой nid
на узел типа Meet
. Я установил эти атрибуты для реального узла типа Meet. Однако, когда я запускаю этот объект узла через node_validate()
, я получаю ошибку:
Встречайте: на этот пост нельзя ссылаться.
Почему это происходит? Вот объект узла:
stdClass Object
(
[type] => bout
[name] => Gary Oak
[promote] =>
[comment] => 2
[revision] =>
[format] => 0
[status] => 0
[title] => the title 4
[uid] => 4
[field_touches_scored] => Array
(
[0] => Array
(
[value] => 4
)
)
[field_touches_received] => Array
(
[0] => Array
(
[value] => 5
)
)
[field_meet] => Array
(
[0] => Array
(
[nid] => 2583
)
)
[field_round] => Array
(
[0] => Array
(
[value] => 1
)
)
[field_legacy_bout] => Array
(
[0] => Array
(
[value] => 0
)
)
[field_weapon] => Array
(
[0] => Array
(
[value] => saber
)
)
)
Кроме того, я не совсем уверен, что происходит с сообщениями об ошибках. Это моя функция для проверки узлов:
$nodes_to_save = construct_nodes();
foreach ($nodes_to_save as $node) {
node_validate($node, $form);
if ($errors = form_get_errors()) {
form_set_error('', t('Validation error. No nodes saved.'));
}
}
Я ожидал бы, что если node_validate()
сгенерирует любую ошибку, будет вызван дополнительный вызов form_set_error()
Тем не менее, я получаю только одну ошибку, которая упоминается выше. Я неправильно понимаю эти функции?