';已更改';Drupal8中的字段

';已更改';Drupal8中的字段,drupal,drupal-8,Drupal,Drupal 8,我已经创建了自定义实体,并试图在表单上显示实体的“更改”时间 我正在使用这个代码 $fields['changed'] = BaseFieldDefinition::create('changed') ->setLabel(t('Changed')) ->setDescription(t('The time that the entity was last edited.')) ->setSetting('value', \dat

我已经创建了自定义实体,并试图在表单上显示实体的“更改”时间

我正在使用这个代码

$fields['changed'] = BaseFieldDefinition::create('changed')
        ->setLabel(t('Changed'))
        ->setDescription(t('The time that the entity was last edited.'))
        ->setSetting('value', \date_iso8601($entity->changed->value))
        ->setDisplayOptions('view', [
          'label' => 'above',
          'weight' => 11,
        ])
        ->setDisplayOptions('form', [
          'weight' => 11,
        ])
        ->setDisplayConfigurable('form', TRUE)
        ->setDisplayConfigurable('view', TRUE);

但是无论如何,“更改”的时间戳没有出现,你能帮我吗

这是我用于实体的代码。这应该行得通

$fields['changed'] = BaseFieldDefinition::create('changed')
      ->setLabel(t('Changed'))
      ->setDescription(t('The time that the entity was last edited.'));

尝试删除“setSetting()”方法。已同时删除这两个方法。但一切都没有改变。有趣的是,它与标准的“created”字段完全兼容。但“已更改”的未显示。请尝试仅使用setLabel和setDesc,它应该可以工作。我也是这么用的。然后逐渐添加您想要的选项。我可以想象,在表单中显示“已更改”字段是不起作用的,因为它对我来说没有意义。但是对于我的任务,我需要显示这个字段。我想,我只需要一个字段格式化程序,你确定需要在表单中使用它吗?如果你想在视图中显示它,那很好,但是在表单中??您不会真的手动更改“更改”日期,是吗?是的,此代码是在您创建内容实体时自动创建的。但该字段是否显示在页面上?它不会显示在创建表单上,因为它是自动填写的:PI需要在编辑表单中使用它,要在pastIf中显示实体被更改的时间,在这种情况下,您应该能够使用EntityTypeManager获取您要查找的实体,并插入所创建字段的值:)听起来像一个计划;)