drupal-8 - Drupal 8:以编程方式更新节点不会更新视图中节点的状态
问题描述
我有一个“代理”节点类型,它有一个名为“has_subscription”的布尔字段。
然后我有一个视图,它只显示“has_subscription”为真的代理机构。
都好。
我正在以编程方式更新字段的值,如下所示:
$node = node_load($nid);
$node->set("field_has_subscription", 1);
$node->save();
如果我随后编辑节点,我可以看到布尔字段的复选框现在已选中。伟大的。
但是,视图仍未显示此节点。只有当我保存节点编辑页面时它才会开始出现。
有什么我需要添加到代码中的吗?
解决方案
将节点设置为在保存时发布
use Drupal\node\Entity\Node;
$node = Node::load($nid);
//set value for field
$node->field_has_subscription->value = TRUE;
// set node to publish
$node->setPublished(TRUE);
//save to update node
$node->save();
推荐阅读
- php - 使用 PHP 删除 XML 文件的元素
- javascript - Is there a way to increase specificity by adding the element with Emotion?
- javascript - Electron adding files to public folder after build fails
- python - 找不到文件目录错误。请帮助。FileNotFoundError:[Errno 2] 没有这样的文件或目录:'script.py'
- tensorflow - 使用 [image,label] = dataset.take(2) 返回两个元组而不是一个
- android - 为什么 React 不在 Android 操作系统上呈现列表
- python - 在 Keras 中获取多输出模型的类
- java - 试图找到回文数
- python - 列出并使用我自己的函数中定义的变量
- yii2 - 将 phpGrid 与 YII2 集成