我想在更新节点时更新节点字段的值。
使用此处提到的代码尝试过以编程方式更新节点Drupal 8
use Drupal\node\Entity\Node;
function hello_world_entity_presave(Drupal\Core\Entity\EntityInterface $entity) {
$check = \Drupal::routeMatch()->getParameter('node');
if ($check) {
$node = Node::load($check->nid->value);
$node->title->value = 'testing'; //set value for field
$node->save();
}
}
但它没有用。保存节点后出现500错误。我也尝试取出if语句并指定节点ID$node = Node::load(1);
我还尝试在Drupal 8中以编程方式使用更新节点/实体
use Drupal\node\Entity\Node;
function hello_world_node_update(Drupal\node\NodeInterface $node) {
$node = Node::load(1);
$node->set("title", 'New value'); // also tried $node->setTitle('The new Title');
$node->save();
}
但也没有运气。
另外,我尝试使用不同的钩子entity_presave,entity_update,node_update,但没有任何区别。