Tôi đang viết một hook cập nhật để thêm một trường mới vào một thực thể tùy chỉnh và đang làm theo mẫu được hiển thị ở đây
https://www.drupal.org/node/2554097
/**
* Thêm trường 'revision_translation_affected' vào các thực thể 'nút'.
*/
hàm node_update_8001() {
// Cài đặt định nghĩa mà trường này có trong
// \Drupal\node\Entity\Node::baseFieldDefinitions()
// tại thời điểm chức năng cập nhật này được viết. Nếu/khi mã là
// triển khai thay đổi định nghĩa đó, mô-đun tương ứng phải
// thực hiện một chức năng cập nhật gọi
// \Drupal::entityDefinitionUpdateManager()->updateFieldStorageDefinition()
// với định nghĩa mới.
$storage_definition = BaseFieldDefinition::create('boolean')
->setLabel(t('Bản dịch sửa đổi bị ảnh hưởng'))
->setDescription(t('Cho biết bản chỉnh sửa cuối cùng của bản dịch có thuộc bản sửa đổi hiện tại hay không.'))
->setReadOnly(TRUE)
->đặtCó thể xem lại(TRUE)
-> setTranslatable(TRUE);
\Drupal::entityDefinitionUpdateManager()
->installFieldStorageDefinition('revision_translation_affected', 'node', 'node', $storage_definition);
}
Tôi cảm thấy mình đang sao chép BaseFieldDefinition trong cả lớp thực thể tùy chỉnh cũng như trong tệp cài đặt. Tôi không thể sử dụng chức năng tĩnh
hàm tĩnh công khai baseFieldDefinitions(EntityTypeInterface $entity_type)
từ lớp thực thể để tải định nghĩa trường và cài đặt nó?