Нарушение ограничения целостности: 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, помогает обновлять только одно нужное поле. Вызов этого не вызовет никаких хуков.