1

我的印象是,通过从中删除字段public static function baseFieldDefinitions,在尝试保存实体时将不再需要它们。我的函数现在只包含以下内容:

$fields['id'] = BaseFieldDefinition::create('integer')
  ->setLabel(t('ID'))
  ->setDescription(t('The ID of the Content entity.'))
  ->setReadOnly(TRUE);

$fields['name'] = BaseFieldDefinition::create('string')
  ->setLabel(t('Name'))
  ->setDescription(t('The name of the Content entity.'))
  ->setSettings(array(
    'max_length' => 50,
    'text_processing' => 0,
  ))
  ->setDefaultValue('')
  ->setDisplayOptions('view', array(
    'label' => 'above',
    'type' => 'string',
    'weight' => -4,
  ))
  ->setDisplayOptions('form', array(
    'type' => 'string_textfield',
    'weight' => -4,
  ))
  ->setDisplayConfigurable('form', TRUE)
  ->setDisplayConfigurable('view', TRUE);

但是,当我尝试添加我的实体时,它会返回以下异常:Uncaught PHP Exception InvalidArgumentException: "Field changed is unknown." at /var/www/html/core/lib/Drupal/Core/Entity/ContentEntityBase.php line 474

这是我第一次尝试制作内容实体,因此可能做错了。

4

0 回答 0