добавить некоторую пользовательскую информацию в узел drupal 8

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

nodeObj = Node::load(implode($nids));
    $nodeObj->set('my_field', $current_user_id);
    $nodeObj->save(); 

person King Greg    schedule 20.03.2020    source источник


Ответы (1)


Если я правильно понимаю вашу проблему, ваш код перезаписывает все значение my_field, а не добавляет новое значение. Кроме того, переменные implode() и $nids подсказывают мне, что вы, возможно, пытаетесь выполнить эту функцию на нескольких узлах одновременно, чего ваш текущий код не сделает.

  1. Убедитесь, что my_field является ItemList какое-либо поле.
  2. Попробуйте этот код:
$nodeObjs = Node::loadMultiple($nids);
foreach ($nodeObjs as $nodeObj) {
   $nodeObj->my_field->appendItem($current_user_id);
   $nodeObj->save();
}

person Isaiah Nixon    schedule 24.03.2020