Drupal 8:以编程方式更新节点不会更新视图中节点的状态

时间:2018-10-15 18:26:01

标签: drupal-8 drupal-views

我有一个“代理”节点类型,它具有一个名为“ has_subscription”的布尔字段。

然后我有一个视图,仅显示具有“ has_subscription”为真的代理商。

一切都很好。

我正在像这样以编程方式更新字段的值:

$node = node_load($nid);
$node->set("field_has_subscription", 1);
$node->save();

如果我随后编辑节点,则可以看到现在选中了布尔字段的复选框。很好。

但是,视图仍未显示该节点。仅当我保存节点编辑页面时,它才会开始出现。

我需要添加任何代码吗?

3 个答案:

答案 0 :(得分:2)

将节点设置为在保存时发布

 PACKAGE=android.hardware.nfc@1.0

 LOC=hardware/interfaces/nfc/1.0/default/

 m -j hidl-gen

 hidl-gen -o $LOC -Lc++-impl -randroid.hardware:hardware/interfaces \

     -randroid.hidl:system/libhidl/transport $PACKAGE

 hidl-gen -o $LOC -Landroidbp-impl -randroid.hardware:hardware/interfaces \

     -randroid.hidl:system/libhidl/transport $PACKAGE 

答案 1 :(得分:1)

如果您使用的是Drupal 8,请在文件中重写以下代码并进行检查。

use Drupal\node\Entity\Node;

$node = Node::load($nid);

//set value for field
$node->field_has_subscription->value = TRUE;

//save to update node
$node->save();

答案 2 :(得分:1)

使用以下代码

$node  =  \Drupal\node\Entity\Node::load($nid);
$node->set('field_has_subscription', 1);
$node->save();