首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式加载和保存节点不是更新我的字段,而是手动编辑和保存。为什么会有区别?

以编程方式加载和保存节点不是更新我的字段,而是手动编辑和保存。为什么会有区别?
EN

Drupal用户
提问于 2021-12-13 15:40:10
回答 1查看 298关注 0票数 1

我已经将D7日期字段迁移到D9智能日期(具有递归)。在迁移过程中,我分析了遗留的重复规则,并将它们填充到新的D9智能日期字段中。

但是,除非我首先手动编辑和保存节点(不做任何更改),否则重复日期不会显示在视图中。

问题是,我有数百个需要重新分配的节点,而任何一个progratic方法都无法工作。只有手动编辑和保存,才会迫使重复规则完成显示所需的操作。

我试过使用视图块操作的保存节点功能。我试过使用Save模块。我尝试创建一个PHP脚本来加载和保存节点。

这些都不管用。我的剧本在下面。知道为什么只能手工保存吗?

EN

回答 1

Drupal用户

发布于 2021-12-13 16:35:47

知道为什么只能手工保存吗?

正如Jaypan在评论中提到的那样,这是因为如果没有任何变化,Drupal将不会保存节点。

当您的提交实体的表格具有创建/更改日期(即实现EntityChangedInterface)时,它会执行以下操作:

代码语言:javascript
复制
if ($entity instanceof EntityChangedInterface) {
  $entity->setChangedTime($this->time->getRequestTime());
}

这将更改字段值,从而强制实体保存。

您可以使用相同的方法强制在代码中保存。

票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/308708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档