向节点 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
变量向我暗示您可能试图同时在多个节点上执行此功能,而您当前的代码不会这样做。
- 确保
my_field
是某种 ItemList 字段。
- 试试这个代码:
$nodeObjs = Node::loadMultiple($nids);
foreach ($nodeObjs as $nodeObj) {
$nodeObj->my_field->appendItem($current_user_id);
$nodeObj->save();
}
我需要用每次用户访问页面时插入的新值更新我的引用实体。我尝试使用这段代码,但不幸的是,后者没有增加任何价值,而是取代了所有这些。我附上了我使用的代码,希望有人能帮助我解决这个问题。谢谢
nodeObj = Node::load(implode($nids));
$nodeObj->set('my_field', $current_user_id);
$nodeObj->save();
如果我对您的问题的理解正确,您的代码将覆盖 my_field
的整个值,而不是附加新值。此外,implode()
和 $nids
变量向我暗示您可能试图同时在多个节点上执行此功能,而您当前的代码不会这样做。
- 确保
my_field
是某种 ItemList 字段。 - 试试这个代码:
$nodeObjs = Node::loadMultiple($nids);
foreach ($nodeObjs as $nodeObj) {
$nodeObj->my_field->appendItem($current_user_id);
$nodeObj->save();
}