добавить некоторую пользовательскую информацию в узел drupal 8 - PullRequest
2 голосов
/ 20 марта 2020

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

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

1 Ответ

0 голосов
/ 24 марта 2020

Если я правильно понимаю вашу проблему, ваш код перезаписывает все значение 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();
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...