2

我需要使用每次用户访问页面时插入的新值来更新我的引用实体。我尝试使用此代码,但不幸的是,后者不会添加值而是替换所有值。我附上了我使用的代码,希望有人可以帮助我解决这个问题。谢谢你

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

1 回答 1

0

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

于 2020-03-24T17:19:48.747 回答