向节点 drupal 8 添加一些自定义信息

add some custom information to node drupal 8

我需要用每次用户访问页面时插入的新值更新我的引用实体。我尝试使用这段代码,但不幸的是,后者没有增加任何价值,而是取代了所有这些。我附上了我使用的代码,希望有人能帮助我解决这个问题。谢谢

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

如果我对您的问题的理解正确,您的代码将覆盖 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();
}