【问题标题】:add some custom information to node drupal 8向 node drupal 8 添加一些自定义信息
【发布时间】:2020-03-20 18:11:22
【问题描述】:
我需要使用每次用户访问页面时插入的新值来更新我的引用实体。我尝试使用此代码,但不幸的是,后者不会添加值而是替换所有值。我附上了我使用的代码,希望有人可以帮助我解决这个问题。谢谢
nodeObj = Node::load(implode($nids));
$nodeObj->set('my_field', $current_user_id);
$nodeObj->save();
【问题讨论】:
标签:
drupal
drupal-8
drupal-nodes
【解决方案1】:
如果我正确理解您的问题,您的代码将覆盖 my_field 的整个值,而不是附加一个新值。此外,implode() 和 $nids 变量向我表明您可能正在尝试同时在多个节点上执行此功能,而您当前的代码不会这样做。
- 确保
my_field 是某种ItemList 字段。
- 试试这个代码:
$nodeObjs = Node::loadMultiple($nids);
foreach ($nodeObjs as $nodeObj) {
$nodeObj->my_field->appendItem($current_user_id);
$nodeObj->save();
}