Нарушение ограничения целостности: 1062 Повторяющаяся запись для поля вставки видео

Тип контента:- VideoDisplay

Поля: -Наименование видео (тип: строка), видео (тип: поле для вставки видео), исполнитель (тип: поле ссылки на узел)

Пользователь уже создал запись типа VideoDisplay. Теперь, согласно требованию, я могу добавить больше Artist в существующее видео.

Поэтому я придерживаюсь этого подхода:

$node_vids = node_load($videoId);
$node_vids->field_artist[LANGUAGE_NONE] = array(
               0 => array('nid' => $form_state['values']['nid']));
$node = node_submit($node_vids);
node_save($node);

Но это дает мне ошибку, говоря:

SQLSTATE [23000]: Нарушение ограничения целостности: 1062 Повторяющаяся запись 'node-143-0-0-und' для ключа 'PRIMARY'

Эта ошибка появляется при вставке данных в видео (тип: поле для вставки видео). Но здесь я хочу сохранить только поле Artist(Type: Node Reference Field). Я узнал, что node_save на самом деле сохраняет все атрибуты Content Type.

После поиска в сети я пытаюсь использовать field_attach_update(), но снова выдает то же исключение. Пожалуйста, дайте мне знать любое решение, чтобы выйти из этой проблемы.

1 ответ

Функция field_sql_storage_field_storage_write(), предоставляемая Drupal, помогает обновлять только одно нужное поле. Вызов этого не вызовет никаких хуков.

Другие вопросы по тегам